在我的Silverlight项目中,我创建了一个HTM页面,其中包含了一个Iframe标记。
我想在新的浏览器标签上打开此页面。这是我试图在按钮点击事件上实现的:
HtmlPage.Window.Navigate(new System.Uri("../Forms/Page.htm", System.UriKind.Relative), "_blank");
HtmlPage.Window.Navigate(new System.Uri("../Forms/Page.htm", "_blank");
HtmlPage.Window.Navigate(new System.Uri("/Forms/Page.htm", "_blank");
HtmlPage.Window.Navigate(new System.Uri("Page.htm", "_blank");
到目前为止,这种方法都没有奏效。我一直收到404错误,说找不到页面。
有没有解决这个问题?
祝你好运
答案 0 :(得分:0)
您的网页必须位于网络项目中。 如果页面位于项目的根目录下,则可以(在解决方案中的任何位置):
HtmlPage.Window.Navigate(new System.Uri("/page.htm", UriKind.Relative), "_blank");
如果您的页面位于silverlight应用程序项目中,则无法通过HtmlPage.Window.Navigate直接访问它,但是您可以加载其内容(然后例如将其保存到本地文件夹并最终显示它或使用WebBrowser解释{ {3}})
var sm = Application.GetResourceStream(new System.Uri("page.htm", UriKind.Relative));
StreamReader reader = new StreamReader(sm.Stream);
string content = reader.ReadToEnd();
browser.NavigateToString(content);
答案 1 :(得分:0)
使用以下代码以银灯打开网页。
HtmlPage.Window.Invoke("ShowBrowserIFrame", url);
ShowBrowserIFrame是JS函数,将此函数添加到银光的html页面。
function ShowBrowserIFrame(url) {
BrowserDivContainer.css('display', 'block');
$('<iframe id="' + jobPlanIFrameID + '" src="' + url + '" style="height:100%;width:100%;" />')
.appendTo(BrowserDivIFrameContainer);
slHost.css('width', '0%');
}
检查此post以获取完整的解决方案。