C# lien Hypertexte dans TextBlock: rien ne se passe quand je clique dessus

dans mon application c # standalone, je veux laisser les utilisateurs cliquer sur un lien qui lancerait leur navigateur préféré.

System.Windows.Controls.TextBlock text = new TextBlock();
Run run = new Run("Link Text");

Hyperlink link = new Hyperlink(run);
link.NavigateUri = new Uri("http://w3.org");
text.Inlines.Add(link);

Le lien est affiché correctement.

Lorsque je passe la souris dessus, le lien devient rouge.

problème: quand je clique dessus, il ne se passe rien.

ai-je oublié quelque chose? Ai-je besoin pour mettre en œuvre une sorte de méthode pour vraiment laisser le lien sera ouvert?

16
demandé sur Nicolas Raoul 2012-10-05 12:48:14

2 réponses

vous devez gérer l'hyperlien RequestNavigate événement. Voici un moyen rapide de le faire:

link.RequestNavigate += (sender, e) =>
{
    System.Diagnostics.Process.Start(e.Uri.ToString());
};
22
répondu markmuetz 2012-10-05 08:59:48

Vous manipulez L'hyperlien.Quel est l'événement de RequestNavigate? Lorsqu'un utilisateur clique sur un hyperlien dans une fenêtre WPF, il n'ouvre pas automatiquement un navigateur avec L'URI spécifié dans sa propriété NavigateUri.

Dans votre code-derrière vous, vous pouvez faire quelque chose comme:

link.RequestNavigate += LinkOnRequestNavigate;

private void LinkOnRequestNavigate(object sender, RequestNavigateEventArgs e)
{
    System.Diagnostics.Process.Start(e.Uri.ToString());
}
6
répondu Simon 2012-10-05 09:37:42