2010-01-08 2 views
3

J'utilise WPF et un contrôle Hyperlink avecRégler la valeur de lien avec WPF par code

<TextBlock Margin="98,190,116,133.418" FontSize="14"> 
     <Hyperlink Name="hyperlink" RequestNavigate="Hyperlink_RequestNavigate"> 
      Click here 
     </Hyperlink> 
    </TextBlock> 

cela fonctionne, mais je voudrais définir la valeur « cliquez ici » par le code, mais je Je n'arrive pas à trouver la bonne propriété.

hyperlink.Value ? 
hyperlink.Text ? 

Merci d'avance pour votre aide

Répondre

2
+0

J'utilise ceci: hyperlink.NavigateUri = new Uri (value); mais rien de visible, le texte est vide – Tim

+0

Vérifiez votre format Uri, est-il valide? –

+0

oui, si je laisse le "cliquez ici" dans le xaml, je peux cliquer dessus et aller à la bonne URL avec privé void Hyperlink_RequestNavigate (expéditeur d'objet, RequestNavigateEventArgs e) { Process.Start (nouveau ProcessStartInfo (e. Uri.AbsoluteUri)); e.Handled = true; } – Tim

7

Une autre réponse, que je considère plus simple que de travailler avec les inline est de mettre un TextBlock (avec x:Name) de l'Hyperlink puis appeler sa propriété Text dans le code sous-jacent:

<TextBlock Margin="98,190,116,133.418" FontSize="14"> 
    <Hyperlink Name="hyperlink" RequestNavigate="Hyperlink_RequestNavigate"> 
     <TextBlock x:Name="hyperlinkText"/> 
    </Hyperlink> 
</TextBlock> 

Ensuite, dans le code derrière vous pouvez définir le texte du lien hypertexte en appelant hyperlinkText.Text, comme ceci:

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    this.hyperlinkText.Text = "some custom text"; 
} 
+0

Merci! Cela devrait être la réponse acceptée, puisque jeter juste trois liens ici de votre presse-papiers n'est clairement pas! – Marv

3

Vous pouvez utiliser le Inlines propriété de cette façon:

hyperlink.Inlines.Clear(); 
hyperlink.Inlines.Add("Your text here");