8
votes

C # Texte WPF avec des liens

Je viens de me trouver un nouveau défi: Faire un processeur de texte qui manipule plus que le Web que le texte brut. Concevoir un cadre agréable pour cela est ce que j'ai hâte de commencer, mais j'ai besoin de savoir quelles sont les possibilités du côté de l'interface graphique (il aura probablement des tas de défis de l'interface graphique).

donc la chose fondamentale que j'ai besoin d'une sorte de contrôle où je peux faire des parties de mon texte cliquant / souris-enveloppable.

Je suis un peu nouveau à WPF et que vous ne savez pas comment faire cela. Quelqu'un a-t-il une idée de comment faire cela? Y a-t-il des exemples? Existe-t-il déjà des contrôles?

Merci d'avance

Edit:

J'ai trouvé un moyen de le faire avec une RichTextBox: < Pré> xxx

Je reçois maintenant un joli lien hypertexte dans ma zone de texte ... Sauf quand je clique sur ça, rien ne se passe. Qu'est-ce que je manque ici?


0 commentaires

3 Réponses :


25
votes

Vous pouvez utiliser le Hyperlink classe. C'est un cadreContentElement, vous pouvez donc l'utiliser dans un fichier texte ou un flowdocument ou n'importe où ailleurs, vous pouvez intégrer le contenu.

private void RequestNavigateHandler(object sender, RequestNavigateEventArgs e)
{
    Process.Start(e.Uri.ToString());
}


0 commentaires

1
votes

Le moyen le plus simple consiste à gérer les événements de demandeNavigate comme celui-ci:


...
myLink.RequestNavigate += HandleRequestNavigate;
...

private void HandleRequestNavigate(object sender, RoutedEventArgs e)
{
   var link = (Hyperlink)sender;
   var uri = link.NavigateUri.ToString();
   Process.Start(uri);
   e.Handled = true;
}


0 commentaires

4
votes

Remarque Vous devez également définir les propriétés suivantes sur votre RichTextBox ou les liens hypertexte seront désactivés et n'entraîneront pas les événements. Sans Isreadonly, vous devez cliquer sur les hyperliens, avec IsReadonly, ils tirent avec un clic gauche régulier.

<RichTextBox
    IsDocumentEnabled="True"
    IsReadOnly="True">


0 commentaires