Проблемы управления WebBrowser (страницы кодирования и XHTML) - PullRequest
3 голосов
/ 21 января 2011

Я действительно начинаю ненавидеть этот контроль, кажется, что какую-то маленькую задачу почти невозможно выполнить.Я искал альтернативу, но не нашел ничего полезного.

Я работаю над небольшим приложением для редактирования электронных книг.Я использую элемент управления WebBrowser для предварительного просмотра html-файлов.

Сначала я очень старался, чтобы не было временных файлов, поэтому я сделал все это в памяти с потоками, изменив html для включения изображений, закодированных в Base64.и включая CSS непосредственно в HTML.Проблема в том, что большое изображение отображается неправильно, и это заставляет пользователя иметь IE8 как минимум.

Я искал другие библиотеки, например Chrome или Firefox Engine, но обе они слишком велики, чтобыбыть полезным (11 мегабайт только для предварительного просмотра, когда мое приложение небольшого размера 500 КБ).

Затем я смирился с тем, что использовал только временные файлы, поэтому у меня была бы лучшая совместимость и меньше проблем с CSS и изображениями.

Проблема, с которой я столкнулся, заключается в том, что в некоторых файлах (на некоторых компьютерах) обнаружена неправильная кодировка (windows-1252), что приводит к неправильному отображению некоторых неанглийских символов.Я хочу, чтобы их принуждали к UTF-8.Если я возьму файл и закодирую текст с помощью StreamReader в UTF8 и передам их в свойство DocumentText, я потеряю все изображения и форматирование.

    public frmPreview(string filename, string Chapter)
    {
        InitializeComponent();
        string Path = Variables.TempFolder + "\\" + Utils.GetFilePathInsideZip(filename);
        webBrowser1.Navigate(Path);
        webBrowser1.Document.Encoding = "utf-8";


        this.Text = Chapter;
    }

1 - Как я могу принудительно закодировать кодстраница, независимо от настроек компьютера?

Пожалуйста, примите во внимание, что изображения и CSS важны, и я не могу найти способ иметь и мои изображения, и правильную кодировку, потому что после загрузки текста (с навигацией), это не может быть изменено.Но если я не использую Navigate, он не может видеть или находить CSS и изображения.

Также при переходе к файлам XHTML они пытаются открыться вне приложения (в браузере Windows по умолчанию).Сначала при использовании моих единственных потоков у меня не было проблем с просмотром файлов.

2 - Как заставить файлы XHTML открываться внутри элемента управления?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...