Я использую элемент управления веб-браузером winforms для отображения некоторого контента в приложении Windows Forms. Я использую свойство DocumentText для записи сгенерированного HTML. Эта часть работает эффектно. Теперь я хочу использовать некоторые изображения в разметке. (Я также предпочел бы использовать связанные CSS и JavaScript, однако, это можно было бы обработать, просто вложив его.)Как ссылаться на локальный ресурс в сгенерированном HTML в элементе управления WinForms WebBrowser?
Я работаю в течение нескольких дней и не могу найти ответ на название вопрос.
Я попытался использовать относительную ссылку: приложение exe находится в bin \ debug. Изображения находятся в каталоге «Изображения» в корне проекта. Я установил, что изображения будут скопированы в выходной каталог при компиляции, поэтому они попадают в bin \ debug \ Images *. Поэтому я затем использую ссылку, подобную этой «Образцам ...», думая, что она будет относиться к exe. Однако, когда я смотрю на свойства изображения во встроенном окне браузера, я вижу URL-адрес изображения «about: blankImages/*». Кажется, что все похоже на «about: blank», когда HTML-код записывается в элемент управления. Не имея контекста местоположения, я не могу понять, что использовать для ссылки относительного файла ресурсов.
Я искал свойства элемента управления, чтобы узнать, есть ли способ установить что-то, чтобы исправить это. Я создал пустую html-страницу и указал браузер на нее с помощью метода «Навигация»(), используя полный локальный путь к файлу. Это отлично работало с браузером, сообщающим о локальном пути «file: /// ...» к пустой странице. Затем я снова написал браузер, на этот раз используя Document.Write(). Опять же, браузер теперь сообщает «about: blank» в качестве URL-адреса.
Короткая запись динамических результатов HTML в реальный файл, нет ли другого способа ссылки на файловый ресурс?
Я собираюсь попробовать последнее: построить абсолютные пути к изображениям и записать их в HTML. Мой HTML генерируется с использованием преобразования XSL XML-файла с сериализованным объектом, поэтому мне нужно будет играть с некоторыми параметрами XSL, которые потребуют немного дополнительного времени, поскольку я не знаком с ними.
Встроенный веб-браузер может быть настроен не показывать регулярное контекстное меню: IsWebBrowserContextMenuEnabled = ложь – Peter
OOI PATH_SEPARATOR уже определен в рамках - Path.AltDirectorySeparatorChar – Fraser