ブラウザ内で、これを使用してポップアップ ウィンドウを開くことができます。
System.Windows.Browser.HtmlPage.Window.Navigate(new Uri(uri), "_blank");
ブラウザの外部で実行しているときにこれを行うにはどうすればよいですか?
ブラウザ内で、これを使用してポップアップ ウィンドウを開くことができます。
System.Windows.Browser.HtmlPage.Window.Navigate(new Uri(uri), "_blank");
ブラウザの外部で実行しているときにこれを行うにはどうすればよいですか?
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");
}
}
これを行う別の方法は、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
あなたはそうしない。System.Windows.Browser.HtmlPage は、Silverlight アプリケーションをホストしている HtmlPage への呼び出しです。ブラウザの外では、Web ページによってホストされていません。それをしようとすると、アプリケーションがハングします。
昇格した特権を持っている場合は、OS 呼び出しを行って新しいブラウザーを開くことができます。または、ホストされたブラウザーとして機能するサードパーティのコントロールがあると確信しています。