Проблема в том, что на моей машине указанные документы отображаются в увеличенном масштабе.
в.
Internet Explorer соблюдает настройки масштаба Windows. В результате размер, который вы увидите на элементе управления WebBrowser
в системе с масштабированием 100, отличается от размера, который вы видите на элементе управления WebBrowser
в системе с масштабированием 150, тогда как оба элемента управления WebBrowser
установлены на 100 % zoom.
Причина в масштабировании. Коэффициент масштабирования такой же, как коэффициент масштабирования Windows, деленный на 100 или physicalScreenHeight/logicalScreenHeight
.
Насколько я вижу, нет простого способа установить предопределенный зум
уровень программно.
На самом деле, есть. Чтобы изменить уровень масштабирования элемента управления веб-браузера, вы можете получить экземпляр IWebBrowser2
из свойства WebBrowser.ActiveXInstance
, а затем использовать его метод ExecWB
, установить установить масштаб следующим образом:
int OLECMDID_OPTICAL_ZOOM = 63;
int OLECMDEXECOPT_DONTPROMPTUSER = 2;
dynamic iwb2 = webBrowser1.ActiveXInstance;
object zoom = 200; //The value should be between 10 , 1000
iwb2.ExecWB(OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, zoom, zoom);
Вы также можете добавить ссылку на Microsoft Internet Controls (SHDocVw.dll)
и привести WebBrowser.ActiveXInstance
к SHDocVw.WebBrowser
и использовать метод ExecWB
. Но приведенный выше код делает свое дело без добавления каких-либо ссылок.
Масштабирование в веб-браузере полностью отличается от масштабирования в CSS3. Но вы можете узнать о том, как установить масштаб документа: webBrowser1.Document.Body.Style = "zoom:200%";
Все вышеперечисленные коды должны запускаться после заполнения документа.