Почему WebBrowser получает размер экрана телефона, нужно ли устанавливать атрибуты для получения размера экрана компьютера? - PullRequest
0 голосов
/ 01 мая 2019

Я использую Webbrowser, чтобы получить полный скриншот сайта. Некоторые веб-сайты автоматически возвращают ширину / высоту экрана телефона, но я этого не хочу. Могу ли я получить ширину / высоту экрана компьютера с любого веб-сайта, установив атрибуты веб-браузера? Является ли это возможным?

Я искал много информации в Google и на этом сайте, но ни один из них не решил мой вопрос. Код ниже показывает, как далеко я пробовал.

WebBrowser browser = sender as WebBrowser;
browser.ScrollBarsEnabled = false;
browser.Width = browser.Document.Body.ScrollRectangle.Width;
browser.Height = browser.Document.Body.ScrollRectangle.Height;
using (Bitmap bitmap = new Bitmap(browser.Width, browser.Height))
{
    browser.DrawToBitmap(bitmap, new Rectangle(0, 0, browser.Width, browser.Height));
    using (MemoryStream stream = new MemoryStream())
    {
        bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
        byte[] bytes = stream.ToArray();
        Image1.Visible = true;
        Image1.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(bytes);
    }
}

На этом веб-сайте 1 я получил размер, точно такой же, какой я видел в компьютере, но я получаю размер / ширину телефона, возвращаемый из веб-браузера этого веб-сайта 2 .

Любые советы или предложения значимы для меня. Спасибо!

Обновление:

Я попробовал предложение в области комментариев следующим образом:

browser.Navigate(url, "_self", null, "User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36");

После завершения документа я пытаюсь получить browser.Document.Body.ScrollRectangle.Width browser.Document.Body.ScrollRectangle.Height, и я получил ширину, а не то, что мне нужно, как показано на картинке ниже: enter image description here

Я хочу это так: enter image description here

...