Снимок экрана Windows 10 активного окна смещен. C # Winforms - PullRequest
1 голос
/ 11 марта 2019

У меня есть приложение на C # Winforms .Net 3.5, которое делает снимок экрана. При работе под Windows 7 работает нормально, но под Windows 10 скриншот смещен относительно окна. С увеличением 100%, скриншот чуть больше, чем у окна, показывая несколько пикселей фона по бокам и снизу. Но для больших увеличений он показывает рамку, которая смещена в верхний левый угол на величину, которая увеличивается с уровнем увеличения. Поскольку это приложение необходимо запускать на ноутбуках, где необходимо увеличение (особенно для тех, у кого старые глаза), это серьезная проблема.

Код, делающий снимок экрана:

Rectangle bounds = this.Bounds;
using (Bitmap ScreenShot = new Bitmap(bounds.Width, bounds.Height)) 
{
    // code hiding a few controls on the form (control.Visible = false)
    this.Update();
    using (Graphics G = Graphics.FromImage(ScreenShot)) 
    { 
        G.CopyFromScreen(bounds.Left, bounds.Top, 0, 0, bounds.Size);
    }
    // code unhiding the same elements
    SaveScreenshot(Screenshot);
}

Приложение изначально было скомпилировано под Windows 7 с использованием VS2008, но перекомпиляция его под Windows 10 с VS2017 не решила проблему.

Есть идеи, что могло бы привести к ошибкам в Windows 10, но не Windows 7?

Я бы предпочел не обновляться до более поздней версии .Net, если это возможно.

Вот пример снимков экрана, которые он дает при увеличении 125%. Badly offset screenshot

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