GDI+ 中的区域

区域是输出设备的显示区域的一部分。 区域可以是简单(单个矩形)或复杂(多边形和封闭曲线的组合)。 下图显示了两个区域:一个是从矩形构造的,另一个是从路径构造的。

从矩形构造的区域的屏幕截图,以及从路径构造的区域的屏幕截图。

使用区域

区域通常用于剪裁和点击测试。 剪裁涉及将绘图限制到显示区域的某个区域,通常是需要更新的部分。 点击测试包括检查按下鼠标按钮时光标是否在屏幕的某个区域。

可以从矩形或路径构造区域。 还可以通过组合现有区域来创建复杂区域。 Region 类提供以下方法用于组合区域:IntersectUnionXorExcludeComplement

两个区域的交集是同属这两个区域的所有点的集合。 并集是属于一个或另一个或两个区域的所有点的集合。 区域补充是不属于该区域的所有点的集合。 下图显示了上图中显示的两个区域的交集和联合。

上图中两个区域的交集和并集的屏幕截图。

应用于一对区域的 Xor 方法生成一个区域,其中包含属于一个区域或另一个区域的所有点,但不包含这两个点。 应用于一对区域的 Exclude 方法生成一个区域,该区域包含第一个区域中不在第二个区域中的所有点。 下图显示了将 XorExclude 方法应用到本主题开头所示的两个区域导致的区域。

Xor 方法结果的屏幕截图,以及应用于上图中两个区域的 Exclude 方法结果。

若要填充区域,需要 Graphics 对象、Brush 对象和 Region 对象。 Graphics 对象提供 FillRegion 方法,Brush 对象存储填充的属性,如颜色或图案。 以下示例使用纯色填充区域。

myGraphics.FillRegion(mySolidBrush, myRegion);
myGraphics.FillRegion(mySolidBrush, myRegion)

另请参阅