启用字体/图标缩放时,图形CopyFromScreen关闭

时间:2016-01-21 03:49:12

标签: c# graphics fonts scaling

需要一些C#Windows Forms程序的帮助。这是在.NET 4.0上。

我使用以下(代码片段)代码从我的窗口捕获合成图像:

var location = PointToScreen(picVisualizer.Location);
...
g.CopyFromScreen(location, new Point(0, 0), picVisualizer.Size, CopyPixelOperation.SourceCopy);

picVisualizer是我窗口中的PictureBox控件。 只要用户将Windows字体/图标缩放保持在100%,这就可以完美地按预期工作。如果它们发生变化,捕获的图像尺寸合适但偏移,捕获部分窗口,桌面等。

我尝试了各种解决方案,但他们总是给我相同的位置值,所以最终结果是一样的。我也尝试过AutoScaleMode为None,Font,Dpi和Inherit,所有四个都给了我相同的结果。

有没有办法调整该代码,以便即使显示比例不是100%,它也会捕获屏幕的正确部分?

感谢。

1 个答案:

答案 0 :(得分:2)

Blorgbeard建议的答案很精彩。

picVisualizer.DrawToBitmap(bitmap, picVisualizer.ClientRectangle);

感谢。