Подтвердить что ты не робот

Запретить показ полос прокрутки с помощью веб-браузера WPF

Я использую компонент WPF WebBrowser, чтобы отобразить очень простой HTML-контент. Однако, поскольку я заранее не знаю размер содержимого, в настоящее время я получаю полосы прокрутки в элементе управления, когда загружаю определенные наборы данных.

В принципе, как я могу заставить (или иным образом влиять на эквивалент принудительного) расширения WebBrowser на размер, чтобы отображалось все содержимое без необходимости использовать полосы прокрутки?

4b9b3361

Ответ 1

Я думаю, вы можете получить ширину и высоту содержимого компонента webbrowser через его свойство Document, которое должно быть типа mshtml.HTMLDocument. Я считаю, что вы должны иметь возможность использовать свойства body или documentElement для получения необходимых размеров; smth вот так:

mshtml.HTMLDocument htmlDoc = webBrowser.Document as mshtml.HTMLDocument;
if (htmlDoc != null && htmlDoc.body != null)
{
    mshtml.IHTMLElement2 body = (mshtml.IHTMLElement2)htmlDoc.body;
    webBrowser.Width = body.scrollWidth;
    webBrowser.Height = body.scrollHeight;
}

надеюсь, что это поможет, считает

Ответ 2

Проблема с предыдущим решением заключается в том, что он изменяет размер элемента управления, и поскольку элемент управления браузером нельзя обрезать и он всегда находится поверх других элементов WPF, он может охватывать другие элементы.

Вот мое решение:

Dim body = CType(WebBrowserControl.Document, mshtml.HTMLDocumentClass)
body.documentElement.style.overflow = "hidden"

Привет,

Ассаф