Вопрос

Я могу загрузить документ RTF в RichTextBox, но ссылки, содержащиеся в документе на некоторые веб-сайты, не работают. У кого-нибудь есть идеи, почему? Какое-то решение, чтобы ссылки работали?

С уважением,
Пауло Азеведо

Это было полезно?

Решение

WPF по умолчанию не понимает, где вы хотите, чтобы ссылки отображались, поэтому происходит то, что класс Hyperlink запускает событие, RequestNavigate и ожидаем, что вы, разработчик приложения, вызовете фактическую навигацию.

Я предполагаю, что вы просто хотите запустить настроенный веб-браузер системы, так что вот все, что вам нужно сделать:

<Ол>
  • Подключите гиперссылку :: RequestNavigate перенаправленное событие
  • Позвоните в Process.Start с помощью URL, который вы получите, чтобы ОС запустила браузер.
  • Это может выглядеть примерно так:

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

    Другие советы

    Вот один из способов решения ссылок в форматированных текстовых файлах.

    Загрузка RichTextBox из файла RTF с использованием привязки или элемента управления RichTextFile

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top