2010-04-15 6 views
2

Comment insérer un contrôle TextBlock dans un lien hypertexte dans C# codage. semblable à <TextBlock> <Hyperlink>a</Hyperlink></textblock en C#. Je suis incapable de trouver la propriété de contenu dans Hyperlien. Merci d'avance.lien hypertexte de construction dans WPF C#

Répondre

6

Essayez d'utiliser Inlines pour ajouter un lien hypertexte à TextBlock et d'ajouter du texte à HyperLink

TextBlock textBlock = new TextBlock(); 
Hyperlink link = new Hyperlink(); 
link.Inlines.Add("Click me"); 
textBlock.Inlines.Add(link); 
+0

Merci Hun1Ahpu. Ça marche. – fad

+0

Merci son travail bien !! –

0

Utilisez un HyperlinkButton, pas un lien hypertexte (qui est destiné à être utilisé dans un FlowDocument, avec Inlines intérieur)

HyperlinkButton a la propriété de contenu en tant que propriété de contenu.

Alors:

TextBlock tb = new TextBlock(); 
// set tb's properties 

HyperlinkButton hlb = new HyperlinkButton(); 
// set hlb's properties 
hlp.Content = tb; 
+0

hi Timores, incapable de trouver HyperlinkButton dans le système .Windows.Controls – fad

+0

Il se trouve dans l'assembly System.Windows. Voir http://msdn.microsoft.com/en-us/library/system.windows.controls.hyperlinkbutton(VS.95).aspx – Timores

+0

HyperlinkButton est seulement un contrôle Silverlight. pas présent dans WPF –

0

Si vous souhaitez utiliser un TextBlock. J'utilise quelque chose que j'ai croisé et qui fonctionne très bien pour moi.

XAML:

<TextBlock> 
    < Hyperlink NavigateUri="http://yoursite.com" RequestNavigate="Hyperlink_RequestNavigate" > 
     Click Me 
    </Hyperlink> 
</TextBlock> 

code Derrière:

private void Hyperlink_RequestNavigate(object sender, 
    System.Windows.Navigation.RequestNavigateEventArgs e) { 
    System.Diagnostics.Process.Start(
     new System.Diagnostics.ProcessStartInfo(e.Uri.AbsoluteUri) 
    ); 
    e.Handled = true; 
} 

=========================== ====

Je l'ai vu beaucoup comme la solution, mais devenais une erreur à Process.Start. J'ai lu plus et j'ai trouvé que c'était mieux pour les applications Web. Que ce soit ou non la solution affichée ci-dessus a résolu mon problème de lien hypertexte.

protected void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e) { 
    Process.Start(new ProcessStartInfo(e.Uri.AbsoluteUri)); 
    e.Handled = true; 
} 

===============================