23

私の 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);

リンクは正しく表示されます。

マウスを上に移動すると、リンクが赤くなります。

問題: クリックしても何も起こりません。

私は何かを忘れましたか?リンクを実際に開くには、何らかの方法を実装する必要がありますか?

4

4 に答える 4

30

RequestNavigateハイパーリンクのイベントを処理する必要があります。これを行う簡単な方法は次のとおりです。

link.RequestNavigate += (sender, e) =>
{
    System.Diagnostics.Process.Start(e.Uri.ToString());
};
于 2012-10-05T08:59:48.107 に答える
6

「Hyperlink.RequestNavigate」イベントを処理していますか? ユーザーが WPF ウィンドウでハイパーリンクをクリックしても、NavigateUri プロパティで指定された URI を使用してブラウザーが自動的に開かれません。

コード ビハインドでは、次のようなことができます。

link.RequestNavigate += LinkOnRequestNavigate;

private void LinkOnRequestNavigate(object sender, RequestNavigateEventArgs e)
{
    System.Diagnostics.Process.Start(e.Uri.ToString());
}
于 2012-10-05T09:01:35.083 に答える