在Silverlight项目的新窗口中打开HTM页面

时间:2015-11-19 13:12:25

标签: html silverlight

在我的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错误,说找不到页面。

有没有解决这个问题?

祝你好运

2 个答案:

答案 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以获取完整的解决方案。