У меня есть приложение на 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%.