我有一个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%的放大倍数提供的屏幕截图示例。