我需要显示一个包含内部或外部样式表中的图片和字体的本地HTML文件。我想在WinForms中使用.NET Framework 4.8引入的新webView控件。
我尝试了几种不同的方法。通过托管HTTP服务器可以让字体和图片正常工作,但是这并不是一个解决方案,因为在部署程序时每台个人电脑都需要太多配置。
将图像和字体编码为base64字符串并将其用作源可以正常工作。但我想使用NavigateToLocalStreamUri方法来获得一种易于阅读且不需要过多开销的解决方案。
NuGet包Microsoft.Toolkit.Forms.UI.Controls.WebView已安装到其最新稳定版本5.1.1。
下面是我目前正在使用的代码,试图让NavigateToLocalStreamUri运行起来。
预期行为是打开位于
我尝试了几种不同的方法。通过托管HTTP服务器可以让字体和图片正常工作,但是这并不是一个解决方案,因为在部署程序时每台个人电脑都需要太多配置。
将图像和字体编码为base64字符串并将其用作源可以正常工作。但我想使用NavigateToLocalStreamUri方法来获得一种易于阅读且不需要过多开销的解决方案。
NuGet包Microsoft.Toolkit.Forms.UI.Controls.WebView已安装到其最新稳定版本5.1.1。
下面是我目前正在使用的代码,试图让NavigateToLocalStreamUri运行起来。
var uri = new Uri(someLocalPath);
webView1.NavigateToLocalStreamUri(uri, new CustomUriToStreamResolver());
private class CustomUriToStreamResolver : IUriToStreamResolver
{
public Stream UriToStream(Uri uri)
{
var stream = new FileStream(uri.AbsolutePath, FileMode.Open);
return stream;
}
}
预期行为是打开位于
someLocalPath
的 HTML 文件,但实际上会抛出以下异常,我并不完全理解。Could not find any resources appropriate for the specified culture or the
neutral culture. Make sure \"Microsoft.Toolkit.Win32.UI.Controls.DesignerUI.resources\"
was correctly embedded or linked into assembly
\"Microsoft.Toolkit.Forms.UI.Controls.WebView\" at compile time, or that all
the satellite assemblies required are loadable and fully signed.
问题出在我的CustomUriToStreamResolver
上吗?还是有我不知道的潜在问题?
如果你知道其他在WinForm中用webView控件打开someLocalPath
HTML文件的方法,请告诉我。