1

だから私は新しいウィンドウを開くWPFアプリケーションを持っています。次に、その新しいウィンドウで、webBrowserオブジェクトを作成します。

WebBrowser browser = new WebBrowser();
browser.Source = new System.Uri(chatUrl);
browser.Navigating += new NavigatingCancelEventHandler(browser_Navigating);
this.browserControl.Child = browser;

ご覧のとおり、NavigatingCancelEventHandlerのフックを作成しました。私が見たものに基づいて、このハンドラーはWebブラウザー内でクリックされたリンクをインターセプトすることになっています。

private void browser_Navigating(object sender, NavigatingCancelEventArgs e)
{
    e.Cancel = true;
    System.Diagnostics.Process.Start(e.Uri.ToString());
}

そこで、ナビゲーションを取得してキャンセルし、Process.Start関数を使用してデフォルトのブラウザーで開きます。問題は、これを行わないことです。それはまだIE9で開きます。StackOverflowで他のスレッドを見たことがありますが、それらはすべて、私が行っていることを実行すると言っています。しかし、私がしていることはうまくいきません。助けてください。

4

1 に答える 1

0

イベントハンドラーに誤ったデリゲートタイプを使用しています。NavigatingCancelEventArgsを指定していますが、これはWebBrowserNavigatingEventHandlerである必要があります。

正しいものを取得する最も簡単な方法は、入力するだけです

browser.Navigating +=  

TABを2回押すと、正しいハンドラーが生成されます。

編集:うーん、私はSWFバージョンを見ていますが、どちらの場合もWPFに対して上記を試してみます。

于 2012-08-15T15:27:57.223 に答える