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

¿Fue útil?

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:

  1. Enganche el Hyperlink :: RequestNavigate evento enrutado
  2. 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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top