这个问题搜了大半天,综合各方观点,还是把它给实现了,小有成就感
打开一个新的浏览器窗口,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,大功告成。