2

ブラウザ内で、これを使用してポップアップ ウィンドウを開くことができます。

 System.Windows.Browser.HtmlPage.Window.Navigate(new Uri(uri), "_blank");

ブラウザの外部で実行しているときにこれを行うにはどうすればよいですか?

4

3 に答える 3

4

OOB アプリでは、次の回避策を使用できます。

次のような派生ハイパーリンク ボタンを作成します。

public class MyHyperlinkButton : HyperlinkButton 
{ 
        public void ClickMe() 
        { 
                base.OnClick(); 
        } 
} 

それをナビゲーションに使用します:

private void NavigateToUri(Uri url) 
{ 
        if (App.Current.IsRunningOutOfBrowser) 
        { 
                MyHyperlinkButton button = new MyHyperlinkButton(); 
                button.NavigateUri = url; 
                button.TargetName = "_blank"; 
                button.ClickMe(); 
        } 
        else 
        { 
                System.Windows.Browser.HtmlPage.Window.Navigate(url, "_blank"); 
        } 
}

forums.silverlight.netを参照してください

于 2011-08-23T00:41:32.533 に答える
0

これを行う別の方法は、ShellExecute を使用することです。

if (App.Current.IsRunningOutOfBrowser)  
{ 
    dynamic shell = AutomationFactory.CreateObject("Shell.Application");
    shell.ShellExecute("someURL", "", "", "open", 1);
}

ShellExecute のドキュメントはこちら: http://msdn.microsoft.com/en-us/library/bb774148(VS.85).aspx

于 2011-11-01T18:44:28.837 に答える
0

あなたはそうしない。System.Windows.Browser.HtmlPage は、Silverlight アプリケーションをホストしている HtmlPage への呼び出しです。ブラウザの外では、Web ページによってホストされていません。それをしようとすると、アプリケーションがハングします。

昇格した特権を持っている場合は、OS 呼び出しを行って新しいブラウザーを開くことができます。または、ホストされたブラウザーとして機能するサードパーティのコントロールがあると確信しています。

于 2011-07-11T20:29:05.400 に答える