2010-12-29 1 views
0

J'ajoute un lien vers mon application WPF en utilisant un lien hypertexte dans une zone de texte:Existe-t-il un moyen d'ajouter une liaison à la propriété NavigateUri sur un lien hypertexte dans WPF?

<TextBlock Margin="480,92,460,713" Height="24"> 
<Hyperlink NavigateUri="{Binding MyLink}" RequestNavigate="Hyperlink_RequestNavigate">My Link</Hyperlink> 
</TextBlock> 

La liaison « MyLink » ne fonctionne pas. Le lien que j'ai besoin d'utiliser a une chaîne de requête avec une variable dont j'ai besoin de changer dynamiquement dans le code. Si j'essaye même de coder en dur le lien dans le XAML j'obtiens une erreur parce que la chaîne de requête a une variable avec une perluète.

Mon lien fonctionne lorsque je le pointe vers un site comme google. mais j'ai besoin de le mettre dans le code C# et être capable de définir ma variable dans la chaîne de requête. Y a-t-il un moyen de faire cela? Merci!

+0

je ne sais pas comment accepter? Je pense que tout le mien a été répondu – Drew

+1

compris ..... – Drew

Répondre

1

Ce que vous faites devrait fonctionner ...

Pour tester cela crée une application par défaut WPF et placez le code ci-dessous dans la grille de Window1.xaml ...

 <TextBlock> 
      <Hyperlink NavigateUri="{Binding}" RequestNavigate="Hyperlink_RequestNavigate">My Link</Hyperlink> 
     </TextBlock> 

... dans Window1.xaml.cs ajouter ceci ...

public Window1() 
    { 
     InitializeComponent(); 

     this.DataContext = "whatever the heck i want"; 
    } 

    private void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e) 
    { 
     //e.Uri will display "whatever the heck i want" 
     //which would allow you to do whatever you want 
     //with the URL at that point 

     Process.Start(new ProcessStartInfo("url_you_want_to_use")); 
     e.Handled = true; 
    } 
+0

ne fonctionne toujours pas pour moi pour une raison quelconque. quand j'ai changé la chaîne datacontext pour être un lien, comme google je clique sur le lien et rien ne se passe. – Drew

+0

Le code ci-dessus ne va rien faire avec le lien; vous devez gérer cela vous-même ... exemple modifié ... échangez "url_you_want_to_use" avec e.Uri.AbsoluteUri pour le voir fonctionner immédiatement avec http://www.google.com par exemple –

+0

je vois, merci! – Drew

Questions connexes