活动窗口的Windows 10屏幕快照已偏移。 C#Winforms

时间:2019-03-11 19:31:02

标签: c# windows winforms

我有一个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 10VS2017下重新编译该应用程序并没有解决问题。

有什么想法会导致在Windows 10而不是Windows 7下出错?

如果可能的话,我希望不必升级到.Net的更高版本。

以下是它以125%的放大倍数提供的屏幕截图示例。 Badly offset screenshot

0 个答案:

没有答案