Pergunta

Sou capaz de carregar um documento RTF em uma caixa de referência RichText, mas os links que o documento contém para alguns sites não estão funcionando. Alguém faz algum ideia do porque? Alguma solução para fazer os links funcionarem?

Atenciosamente,
Paulo Azevedo

Foi útil?

Solução

WPF por padrão não entende onde você deseja que os links sejam exibidos, então o que está acontecendo é que a classe Hyperlink está disparando um evento, Requestnavigate, e esperando que você, o designer de aplicativos, faça com que a navegação real ocorra.

Suponho que você só queira lançar o navegador da web configurado do sistema, então aqui está tudo o que você precisa fazer:

  1. Conectar o Hyperlink :: requestnavigate Evento roteado
  2. Ligar Process.start com o URL que você recebe para lançar o sistema operacional, o navegador.

Isso pode parecer um pouco assim:

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());
    }
}

Outras dicas

Aqui está uma maneira de resolver links em arquivos de texto ricos.

Carregando um RichTextBox de um arquivo RTF usando a ligação ou um controle RichTextFile

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top