在浏览器中,我可以使用它打开一个弹出窗口:
System.Windows.Browser.HtmlPage.Window.Navigate(new Uri(uri), "_blank");
在浏览器外部运行时如何执行此操作?
答案 0 :(得分: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");
}
}
答案 1 :(得分:0)
你没有。 System.Windows.Browser.HtmlPage是对托管Silverlight应用程序的HtmlPage的调用。在浏览器之外,您不是由网页托管。试图这样做只会挂起应用程序。
如果您拥有提升的权限,则可以通过OS调用来打开新浏览器,或者我确定有第三方控件可以充当托管浏览器。
答案 2 :(得分: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