Мне нужно отобразить локальный файл HTML с изображениями и шрифтами, которые включены через внешнюю или внутреннюю таблицу стилей.Я хочу использовать новый элемент управления webView, представленный в .NET Framework 4.8 для WinForms.
Я пробовал несколько разных способов.Хостинг 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;
}
}
Ожидаемое поведениеоткрывает файл HTML, который находится по адресу someLocalPath
Вместо этого он выдает следующее исключение, которое я не до конца понимаю.
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
или это основная проблема, которой я являюсьне знаете?
Если вам известен какой-либо другой способ открытия HTML-файла someLocalPath
с помощью элемента управления webView в WinForm, сообщите мне.