這個問題搜了大半天,綜合各方觀點,還是把它給實現了,小有成就感
打開一個新的瀏覽器窗口,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,大功告成。