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/