浏览器弹出窗口和Silverlight OOB
在浏览器中,我可以使用它打开一个弹出窗口:浏览器弹出窗口和Silverlight OOB,silverlight,silverlight-oob,Silverlight,Silverlight Oob,在浏览器中,我可以使用它打开一个弹出窗口: System.Windows.Browser.HtmlPage.Window.Navigate(new Uri(uri), "_blank"); 在浏览器外运行时如何执行此操作?您不需要。System.Windows.Browser.HtmlPage是对承载silverlight应用程序的HtmlPage的调用。在“浏览器外”中,您的主机不是网页。尝试这样做只会挂起应用程序 如果您具有提升的权限,则可以通过操作系统调用来打开新浏览器,或者我确信有第
System.Windows.Browser.HtmlPage.Window.Navigate(new Uri(uri), "_blank");
在浏览器外运行时如何执行此操作?您不需要。System.Windows.Browser.HtmlPage是对承载silverlight应用程序的HtmlPage的调用。在“浏览器外”中,您的主机不是网页。尝试这样做只会挂起应用程序
如果您具有提升的权限,则可以通过操作系统调用来打开新浏览器,或者我确信有第三方控件充当托管浏览器。在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的文档如下:我不反对使用提升的权限。我需要使用什么操作系统调用?