RTF con enlaces en un RichTextBox WPF
-
10-07-2019 - |
Pregunta
Puedo cargar un documento rtf en un RichTextBox, pero los enlaces que contiene el documento a algunos sitios web no funcionan. Alguien tiene alguna idea de por qué? ¿Alguna solución para que los enlaces funcionen?
Saludos cordiales,
Paulo Azevedo
Solución
WPF por defecto no entiende dónde desea que se muestren los enlaces, por lo que lo que sucede es que la clase Hyperlink está activando un evento, RequestNavigate , y esperando que usted, el diseñador de la aplicación, provoque la navegación real.
Supongo que solo desea iniciar el navegador web configurado por el sistema, así que esto es todo lo que necesita hacer:
- Enganche el Hyperlink :: RequestNavigate evento enrutado
- Llame a Process.Start con la URL que recibe para que el sistema operativo inicie el navegador.
Eso podría verse más o menos así:
public class MyWindow : Window
{
public MyWindow()
{
this.InitializeComponent();
this.myRichTextBox.AddHandler(Hyperlink.RequestNavigate, MyWidow.HandleRequestNavigate);
}
private static void HandleRequestNavigate(object sender, RequestNavigateEventArgs args)
{
Process.Start(args.Uri.ToString());
}
}
Otros consejos
Aquí hay una forma de resolver enlaces en archivos de texto enriquecido.
Carga de un RichTextBox desde un archivo RTF mediante enlace o un control RichTextFile