Ответ 1
Вам нужно обработать событие гиперссылки RequestNavigate
. Вот быстрый способ сделать это:
link.RequestNavigate += (sender, e) =>
{
System.Diagnostics.Process.Start(e.Uri.ToString());
};
В моем автономном приложении С# я хочу, чтобы пользователи нажимали на ссылку, которая запускает их любимый браузер.
System.Windows.Controls.TextBlock text = new TextBlock();
Run run = new Run("Link Text");
Hyperlink link = new Hyperlink(run);
link.NavigateUri = new Uri("http://w3.org");
text.Inlines.Add(link);
Ссылка отображается правильно.
Когда я нажимаю на него курсор, ссылка становится красной.
ПРОБЛЕМА: Когда я нажимаю на нее, ничего не происходит.
Я что-то забыл? Нужно ли мне реализовать какой-то метод, чтобы действительно открыть ссылку?
Вам нужно обработать событие гиперссылки RequestNavigate
. Вот быстрый способ сделать это:
link.RequestNavigate += (sender, e) =>
{
System.Diagnostics.Process.Start(e.Uri.ToString());
};
Вы обрабатываете событие "Hyperlink.RequestNavigate"? Когда пользователь нажимает гиперссылку в окне WPF, он автоматически не открывает браузер с URI, указанным в свойстве NavigateUri.
В своем коде вы можете сделать что-то вроде:
link.RequestNavigate += LinkOnRequestNavigate;
private void LinkOnRequestNavigate(object sender, RequestNavigateEventArgs e)
{
System.Diagnostics.Process.Start(e.Uri.ToString());
}