2011-09-27 56 views
0

如何在WP7的WebBrowser控件中读取现有的html文件?如何在WP7的WebBrowser控件中读取现有的html文件?

我曾尝试:

  1. 流stream = Assembly.GetExecutingAssembly()GetManifestResourceStream( “abc.htm”); StreamReader reader = new StreamReader(stream); string html = reader.ReadToEnd(); Browser.NavigateToString(html);

  2. Browser.Navigate(new Uri(“abc.htm”,UriKind.Relative));

  3. var rs = Application.GetResourceStream(new Uri(“abc.htm”,UriKind.Relative)); StreamReader sr = new StreamReader(rs.Stream); string html = sr.ReadToEnd(); Browser.NavigateToString(html);

所有这三个不工作。方法1和3给出NullReferenceException,因为流返回null,基本上它不读取我的html文件。

这里有什么问题?我该如何解决它?

回答

1

当您使用编号3时,请确保您的HTML文件的生成类型设置为“内容”。

+0

对不起 - 我在哪里检查? – Sri

+0

选择HTML文件并查看其在Visual Studio中的属性(通常位于VS的右下角)。有一个部分说'生成行动'。将其设置为“内容”。 – keyboardP

+0

谢谢!是的,我看到设置为“内容”。仍然没有工作:( – Sri

0

如果你想使用选项2,你必须首先将文件复制到独立存储,如果它需要引用任何其他文件,因为它不可能使用相对路径(对其他文档,图像,js,css等)如果直接从XAP加载,则位于文档中。

0

好了,所以这里有一个例子:

在MainPage.xaml中

<Grid x:Name="LayoutRoot" Background="Transparent"> 
    <phone:WebBrowser x:Name="MyBrowser" 
         HorizontalAlignment="Stretch" 
         VerticalAlignment="Stretch" /> 
</Grid> 
在MainPage.xaml.cs中

public MainPage() 
    { 
     InitializeComponent(); 
     var rs = Application.GetResourceStream(new Uri("abc.html", UriKind.Relative)); 
     StreamReader sr = new StreamReader(rs.Stream); 
     string html = sr.ReadToEnd(); 
     this.MyBrowser.NavigateToString(html); 
    } 

请确保您有文件“abc.html “(检查拼写错误,您的示例代码是”abc。htm“)在您的项目的根文件夹中。将“内容”和“复制到输出目录”的操作构建为“不要复制”。它应该在浏览器中显示页面。

+0

嗨 - 这一个也不工作..即使路径和文件名是正确的,它给我NullReferenceException .. – Sri

+0

它的工作现在...这是一个模拟器问题! – Sri

0

对于第一和第三: 设置生成的HTML文件的操作属性为“资源” 否则会给你的NullReferenceException

对于第二:在WP7 浏览器控件不能直接导航到HTML文件添加到项目中。为此,html文件必须位于独立存储中。 尝试一下,我希望它能起作用。

(标记答案,如果有帮助的话)。

0

如果添加一个按钮样的内部命令它工作正常:

private void htmlLoader(object sender, EventArgs e) 
    { 
     var rs = Application.GetResourceStream(new Uri("abc.html", UriKind.Relative)); 
     StreamReader sr = new StreamReader(rs.Stream); 
     string html = sr.ReadToEnd(); 
     this.MyBrowser.NavigateToString(html); 
    } 
相关问题