Функциональность изменения размера шрифта в WPF WebBrowser - PullRequest
2 голосов
/ 21 июня 2011

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

В настоящее время я могу сделать что-то вроде

    IHTMLDocument2 doc = myBrowser.Document as IHTMLDocument2;

        if (doc != null)
        {
            doc.execCommand("SelectAll", false, null);
            doc.execCommand("FontSize", false, someSize);
            doc.execCommand("Unselect", false, null);
        }
    }

, которое в основном выбирает все содержимое в моем WebBrowser, изменяет размер шрифта и отменяет выбор.Проблема в том, что он устанавливает для ВСЕГО документа одинаковый размер шрифта, и он не является относительным, что означает, что если у меня есть заголовок или что-то с некоторыми абзацами, то заголовок и абзац будут иметь одинаковый размер после нажатия кнопки..

Обнюхивая интерфейс API IHTMLDocument2, нет команды, которая позволяла бы мне выбирать подмножество документа, что означает, что я в основном не могу делать то, что хочу.Мне интересно, есть ли еще место, где я могу получить доступ к атрибуту размера шрифта дочерних элементов внутри этого IHTMLDocument2.

1 Ответ

2 голосов
/ 23 июня 2011

Я нашел ответ:

IHTMLDocument2 doc = webBrowser.Document as IHTMLDocument2;
doc.parentWindow.execScript("document.body.style.zoom=" + browserFontSize.ToString().Replace(",", ".") + ";");

Где webBrowser - это ваш веб-браузер, а browserFontSize - это двойное значение (больше 0, не знаю, какой предел), вы хотите масштабировать свой веб-браузерк.

Это будет работать, только если ваш IE v7.0 +

...