C# гиперссылка в TextBlock: ничего не происходит, когда я нажимаю на нее
в моем автономном приложении C# я хочу, чтобы пользователи нажимали на ссылку, которая запускала бы их любимый браузер.
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);
ссылка отображается правильно.
когда я перемещаю по нему мышь, Ссылка становится красной.
проблема: когда я нажимаю на него, ничего не происходит.
Я что-то забыла? Нужно ли мне реализовать какой-то метод, чтобы действительно открыть ссылку?
2 ответов
вам нужно обработать гиперссылку RequestNavigate
событие. Вот быстрый способ сделать это:
link.RequestNavigate += (sender, e) =>
{
System.Diagnostics.Process.Start(e.Uri.ToString());
};
вы обрабатываете гиперссылку.Событие RequestNavigate'? Когда пользователь щелкает гиперссылку в окне WPF, он автоматически не открывает браузер с URI, указанным в свойстве NavigateUri.
в ваш код позади вы можете сделать что-то вроде:
link.RequestNavigate += LinkOnRequestNavigate;
private void LinkOnRequestNavigate(object sender, RequestNavigateEventArgs e)
{
System.Diagnostics.Process.Start(e.Uri.ToString());
}