silverlight 如何在浏览器的新页面里打开一个xaml

这个问题搜了大半天,综合各方观点,还是把它给实现了,小有成就感

 

打开一个新的浏览器窗口,silverlight并不支持这种做法。打开一个新的浏览器窗口意味着打开另一个应用页面。只需要获得那个应用的url(如http://www.163.com),执行HtmlPage.Window.Navigate(new Uri(url));

所以我们就可以以此为突破点来做

但是我又不想把这个页面单独用一个项目来做,于是就想到了在app_startup里判断url参数的方法来选择页面

好了,废话少说上代码

 private void Application_Startup(object sender, StartupEventArgs e)
        {
            IDictionary<string, string> queryString = HtmlPage.Document.QueryString;
            if (queryString == null || queryString.Count < 1 || !queryString.ContainsKey("page"))
            {
                this.RootVisual = new Login();
            }
            else
            {
                string pageValue = queryString["page"];
                switch (pageValue)
                {
                    case "pointdata":
                        {
                            this.RootVisual = new PointData();
                        }
                        break;

                    default:
                        {
                            throw new Exception("您所指定的起始页面有错误");
                        }
                }
            }
}

在页面跳转的地方用

  HtmlPage.Window.Navigate(new Uri("http://localhost:52878/XXTestPage.aspx?page=pointdata", UriKind.RelativeOrAbsolute), "_blank");

ok,大功告成。

你可能感兴趣的:(silverlight)