【问题标题】:Graphics CopyFromScreen off when font/icon scaling is enabled启用字体/图标缩放时图形 CopyFromScreen 关闭
【发布时间】: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%,它也能捕获屏幕的正确部分?

谢谢。

【问题讨论】:

标签: c# graphics fonts scaling


【解决方案1】:

Blorgbeard 建议的答案效果很好。

picVisualizer.DrawToBitmap(bitmap, picVisualizer.ClientRectangle);

谢谢。

【讨论】:

    猜你喜欢
    • 2013-11-07
    • 2019-12-23
    • 1970-01-01
    • 1970-01-01
    • 2011-08-18
    • 2013-05-29
    • 1970-01-01
    • 1970-01-01
    • 2017-08-23
    相关资源
    最近更新 更多