【发布时间】:2016-01-21 03:49:12
【问题描述】:
在 C# Windows 窗体程序方面需要一些帮助。这是在 .NET 4.0 上。
我使用以下(sn-p of)代码从我的窗口中捕获合成图像:
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%,它也能捕获屏幕的正确部分?
谢谢。
【问题讨论】:
-
@Blorgbeard 是的,效果很好,谢谢!