2012-10-05 11 views
12

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

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

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

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

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

+0

あなたはlink.Clickイベントのイベントハンドラを追加しました:あなたのコードビハインドあなたに

のような何かを行うことができますか? –

+0

可能な重複:http://stackoverflow.com/questions/10238694/example-using-hyperlink-in-wpf – Dennis

+0

@Dennis:重複していると言えます.XAMLではなくコードの中にハンドラを設定します。 – markmuetz

答えて

17

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

link.RequestNavigate += (sender, e) => 
{ 
    System.Diagnostics.Process.Start(e.Uri.ToString()); 
}; 
4

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

link.RequestNavigate += LinkOnRequestNavigate; 

private void LinkOnRequestNavigate(object sender, RequestNavigateEventArgs e) 
{ 
    System.Diagnostics.Process.Start(e.Uri.ToString()); 
} 
関連する問題