区域是输出设备的显示区域的一部分。 区域可以是简单(单个矩形)或复杂(多边形和封闭曲线的组合)。 下图显示了两个区域:一个是从矩形构造的,另一个是从路径构造的。
使用区域
区域通常用于剪裁和点击测试。 剪裁涉及将绘图限制到显示区域的某个区域,通常是需要更新的部分。 点击测试包括检查按下鼠标按钮时光标是否在屏幕的某个区域。
可以从矩形或路径构造区域。 还可以通过组合现有区域来创建复杂区域。 Region 类提供以下方法用于组合区域:Intersect、Union、Xor、Exclude和 Complement。
两个区域的交集是同属这两个区域的所有点的集合。 并集是属于一个或另一个或两个区域的所有点的集合。 区域补充是不属于该区域的所有点的集合。 下图显示了上图中显示的两个区域的交集和联合。
应用于一对区域的 Xor 方法生成一个区域,其中包含属于一个区域或另一个区域的所有点,但不包含这两个点。 应用于一对区域的 Exclude 方法生成一个区域,该区域包含第一个区域中不在第二个区域中的所有点。 下图显示了将 Xor 和 Exclude 方法应用到本主题开头所示的两个区域导致的区域。
若要填充区域,需要 Graphics 对象、Brush 对象和 Region 对象。 Graphics 对象提供 FillRegion 方法,Brush 对象存储填充的属性,如颜色或图案。 以下示例使用纯色填充区域。
myGraphics.FillRegion(mySolidBrush, myRegion);
myGraphics.FillRegion(mySolidBrush, myRegion)