我们在运行时生成了几个自定义html页面,并使用NavigateToString在webbrowser上加载这些html。
我们有许多在运行时生成并且显示正确的内容,但问题是加载存储在应用程序内的图像文件夹中的图像。
使用IsolatedStore和Navigate搜索Stackoverflow很多建议,但我们的html是在运行时生成的。是否可以使用NavigateTostring加载Image?
e.g。代码片段
strHtml = strHtml& “”
"<img style=\'text-align: center;\' src=\""file:///XYZ.jpg\"">" & _
Private Sub WebBrowser_OnLoaded(sender As Object, e As RoutedEventArgs)
webBrowser1.NavigateToString(strHtml)
End Sub
不显示XYZ.jpg。
我们是否真的需要每次在Isolatedstorage设备上保存html以及图像然后让webbrowser加载它?这没有意义。
如果您有办法使用NavigateToString
实现此功能,请告诉我答案 0 :(得分:1)
确定。我解决了..以下步骤
不确定为什么我根本无法使用NavigatetoString来处理图像!
答案 1 :(得分:0)
如果html页面是在运行时生成的,那么你必须将正确的图像路径传递到html sting的旁边,根据你的代码,你在放置html时无法正常工作的路径。
1)您必须将所有图像复制到IsolatedStorage。
重要的是,选择解决方案资源管理器中的所有图像,然后按F4键并设置构建操作 - 内容,复制到输出目录 - 始终复制。
请参阅以下代码段:您可以将这些图像复制一次到IsolatedStorage。
private void CopyToIsolatedStorage(string file, IsolatedStorageFile store, bool overwrite = true)
{
if (store.FileExists(file) && !overwrite)
return;
using (var resourceStream = Application.GetResourceStream(new Uri(file, UriKind.Relative)).Stream)
using (var fileStream = store.OpenFile(file, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite))
{
int bytesRead;
var buffer = new byte[resourceStream.Length];
while ((bytesRead = resourceStream.Read(buffer, 0, buffer.Length)) > 0)
fileStream.Write(buffer, 0, bytesRead);
}
}
希望它有所帮助。