浏览器弹出窗口和Silverlight OOB

时间:2011-07-11 17:46:32

标签: silverlight silverlight-oob

在浏览器中,我可以使用它打开一个弹出窗口:

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

在浏览器外部运行时如何执行此操作?

3 个答案:

答案 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"); 
        } 
}

see forums.silverlight.net

答案 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