0
두 개의 도형 객체가 서로 겹쳐져서 객체의 겹치는 부분이 다른 브러시로 칠해지면 WPF에 방법이 있습니까?두 개의 개별 도형 객체의 인터셉트를 통해 다른 브러시 페인팅
두 개의 도형 객체가 서로 겹쳐져서 객체의 겹치는 부분이 다른 브러시로 칠해지면 WPF에 방법이 있습니까?두 개의 개별 도형 객체의 인터셉트를 통해 다른 브러시 페인팅
해결했습니다.
채우기 규칙이 EvenOdd 인 GeometryGroup을 포함하는 지오메트리 드로잉을 사용할 수 있습니다. 이것은 겹치는 모든 항목을 흰색으로 칠합니다. 그런 다음 Geometry 그룹과 동일한 객체를 포함하는 CombinedGeometry를 사용하여 다른 이미지를 상단에 놓습니다. GeometryCombineMode가 Intersect이고 사용자 브러시에서 교차를 강조 표시합니다. 샘플 코드는 다음과 같습니다.
<Grid>
<Image Stretch="None">
<Image.Source>
<DrawingImage>
<DrawingImage.Drawing>
<GeometryDrawing Brush="Red">
<GeometryDrawing.Pen>
<Pen Brush="Black" Thickness="3" />
</GeometryDrawing.Pen>
<GeometryDrawing.Geometry>
<GeometryGroup FillRule="EvenOdd">
<EllipseGeometry RadiusX="80" RadiusY="80" Center="0,0" />
<EllipseGeometry RadiusX="80" RadiusY="80" Center="40,0" />
</GeometryGroup>
</GeometryDrawing.Geometry>
</GeometryDrawing>
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
<Image HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Stretch="None">
<Image.Source>
<DrawingImage>
<DrawingImage.Drawing>
<GeometryDrawing Brush="LightBlue">
<GeometryDrawing.Geometry>
<CombinedGeometry GeometryCombineMode="Intersect">
<CombinedGeometry.Geometry1>
<EllipseGeometry RadiusX="80" RadiusY="80" Center="0,0" />
</CombinedGeometry.Geometry1>
<CombinedGeometry.Geometry2>
<EllipseGeometry RadiusX="80" RadiusY="80" Center="40,0" />
</CombinedGeometry.Geometry2>
</CombinedGeometry>
</GeometryDrawing.Geometry>
</GeometryDrawing>
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
</Grid>
감사합니다.