c# - Graphics.IsVisible(Rectangle rect) 的文档有误吗?

标签 c# .net winforms visibility

Microsoft 的在线文档指出,此 Graphics 方法返回“如果由 rect 参数指定的矩形包含在此 Graphics 的可见剪辑区域内,则返回 true;否则,返回 false”。

他们真的是这个意思吗?如果 rect 的任何部分位于剪辑区域内,让它返回 true 会更有用。这样,如果 rect 是要绘制的某个对象的边界矩形,您就会知道 View 中是否没有对象,您可以安全地跳过它。

我试验了一些非常简单的 WinForms 代码,该方法的行为似乎符合我的意愿,而不是像文档中所说的那样。但我不愿意假设我是对的。有谁确切知道吗?

当我谈论这方面的文档时,有人对“可见剪辑区域”有定义吗?微软说它是“这个 Graphics 的裁剪区域和窗口的裁剪区域的交集”,但肯定不止于此:例如,一些 Graphics 对象甚至没有窗口(如果它们重新与内存中的位图相关联)。

实验表明,比方说,如果您在大小为 X × Y 的矩形面板上绘画,则图形剪辑区域与 X × Y 矩形相交。显然,如果 Panel 大于其包含的 Form 并且部分滚动到 View 之外,这将继续适用。但同样,最好知道实际规则是什么。

所有积累的智慧都被感激地接受了。

最佳答案

我不知道文档,但我的经验与您的观察非常一致,如果矩形的任何部分在图形的可见剪辑区域内,则该方法返回 true。

不要想太多。文档永远不如代码精确。任何大量的文档都会包含这种不精确的定义。

关于c# - Graphics.IsVisible(Rectangle rect) 的文档有误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66015987/

相关文章:

c# - 程序类中的 Serilog

c# - 我可以使用 `Semaphore.Release` 作为现成的互锁增量吗?

c# - 绑定(bind)到嵌套属性只显示列表中的第一项

c# - 作为流访问 TextReader

c# - ConfigurationManager.AppSettings 性能问题

c# - .NET Framework 2.0 中的 AES 256 加密

c# - 设置 DataGridComboBoxColumn 的 ElementStyle 会破坏预期的行为

.net - 除了 Windows Phone 7 应用程序之外,我还可以将 Silverlight 用于什么?

c# - 以 C/C++ 作为后端的 WinForms 或 WPF 或 Qt for Windows GUI

c# - 在 PDF 查看器中以编程方式启用 'selecting tool'