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?
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());
};
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());
}