Когда я запускаю это и нажимаю на ссылку, я ожидаю, что откроется браузер и он перейдет в Google, но ничего не происходит:
<Window x:Class="TestHyperlink2343.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
<TextBlock>
You and read this or
<Hyperlink NavigateUri="http://www.google.com">go to google</Hyperlink>
etc.
</TextBlock>
</Grid>
</Window>
Итак, я заменяю приведенный выше код следующим, а все еще ничего не происходит. Однако, что удивительно, если я щелкну правой кнопкой мыши по ссылке, она перейдет в Google:
<Window x:Class="TestHyperlink2343.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
<TextBlock>
You and read this or
<Hyperlink MouseDown="Hyperlink_MouseDown">go to google</Hyperlink>
etc.
</TextBlock>
</Grid>
</Window>
private void Hyperlink_MouseDown(object sender, MouseButtonEventArgs e)
{
System.Diagnostics.Process.Start("http://www.google.com");
}
Почему эти примеры не работают должным образом и как я могу заставить работать простую гиперссылку, поскольку пользователи привыкли к их работе в веб-браузерах (щелчок левой кнопкой мыши, открытие браузера, переход на сайт)?
Добавление
Я решил эту проблему, создав собственную гиперссылку без элемента гиперссылки следующим образом:
<TextBlock Text="More info at wikipedia"
TextDecorations="Underline"
MouseDown="TextBlock_MouseDown_Wikipedia"/>
private void TextBlock_MouseDown_Wikipedia(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
System.Diagnostics.Process.Start("http://www.wikipedia.com");
}
Странно, что гиперссылка не так легко работает.