需要一些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%,它也会捕获屏幕的正确部分?
感谢。
答案 0 :(得分:2)
Blorgbeard建议的答案很精彩。
picVisualizer.DrawToBitmap(bitmap, picVisualizer.ClientRectangle);
感谢。