代码之家  ›  专栏  ›  技术社区  ›  Mark Pim

Silverlight 3-浏览器外htmlpage.window.navigate

  •  5
  • Mark Pim  · 技术社区  · 15 年前

    Silverlight 3允许您运行应用程序 out of the browser 在桌面/开始菜单上安装链接。

    问题是我们目前正在使用

    System.Windows.Browser.HtmlPage.
      Window.Navigate(new Uri("http://<server>/<resource>"), "_blank")
    

    将一个URL加载到一个新的浏览器窗口中(它提供一个“打印友好”页面供用户打印)。这在浏览器版本的普通SL中有效,但在浏览器外部,我们得到“禁用了DOM/脚本桥”。发出调用时引发异常。

    是否有其他浏览器无法使用的选项?

    我见过 Open page in silverlight out of browser 但我需要完全用代码来完成这项工作,所以我不想添加(隐藏的)超链接按钮,然后以编程方式“单击”它(除非我必须……)。

    2 回复  |  直到 11 年前
        1
  •  5
  •   Jarek Kardas    15 年前

    您可以尝试从HyperlinkButton继承并公开public click()方法(然后可以从代码实例化和调用,而不是在XAML中声明它)。 详情如下: http://mokosh.co.uk/post/2009/10/08/silverlight-oob-open-new-browser-window/

        2
  •  2
  •   Alexander Zwitbaum    11 年前

    我写了一个基于从超链接按钮继承的思想的扩展方法。

    public static class UriExtensions {
    
    class Clicker : HyperlinkButton {
      public void DoClick() {
        base.OnClick();
      }
    }
    
    static readonly Clicker clicker = new Clicker();
    
    public static void Navigate(this Uri uri) {
      Navigate(uri, "_self");
    }
    
    public static void Navigate(this Uri uri, string targetName) {
      clicker.NavigateUri = uri;
      clicker.TargetName = targetName;
      clicker.DoClick();
    }
    }
    

    那么使用就可以简单地使用它,比如

    新URI http://www.google.com “)。导航(“空白”);

    推荐文章