C# 组合两个半透明椭圆
有一个奇怪的。我有两个不透明度为0.7的椭圆。我想做的是,两个椭圆交叉的地方,显示不同的颜色。在旧的WF图像中,我会遍历每个像素并交换颜色,但我不确定如何在Silverlight中使用图层。有人有什么想法吗C# 组合两个半透明椭圆,c#,silverlight,C#,Silverlight,有一个奇怪的。我有两个不透明度为0.7的椭圆。我想做的是,两个椭圆交叉的地方,显示不同的颜色。在旧的WF图像中,我会遍历每个像素并交换颜色,但我不确定如何在Silverlight中使用图层。有人有什么想法吗 谢谢 编辑:很抱歉,各个元素的属性有一些错误。这是经过测试的: 创建一个并将其放置为Path.Data,其中包含两个作为子元素的元素。将GeometryGroup.FillRule设置为“EvenOdd”,以便两个椭圆覆盖的区域都不填充,并将“Fill”设置为希望椭圆具有的颜色(此处:Ali
谢谢 编辑:很抱歉,各个元素的属性有一些错误。这是经过测试的: 创建一个并将其放置为Path.Data,其中包含两个作为子元素的元素。将GeometryGroup.FillRule设置为“EvenOdd”,以便两个椭圆覆盖的区域都不填充,并将“Fill”设置为希望椭圆具有的颜色(此处:AliceBlue) 将该路径放入具有“Background”属性(如Border)的控件中,并将该背景设置为两个椭圆所覆盖区域的颜色(此处:黄色) 然后将Clip设置为同一GeometryGroup,并将FillRule设置为“非零”,以防止椭圆周围的区域也使用背景色绘制
<Border Background="Yellow">
<Path Fill="AliceBlue" Stroke="Black" StrokeThickness="4">
<Path.Data>
<GeometryGroup FillRule="EvenOdd">
<EllipseGeometry Center="100,100" RadiusX="40" RadiusY="80" />
<EllipseGeometry Center="100,100" RadiusX="80" RadiusY="40" />
</GeometryGroup>
</Path.Data>
</Path>
<Border.Clip>
<GeometryGroup FillRule="Nonzero">
<EllipseGeometry Center="100,100" RadiusX="40" RadiusY="80" />
<EllipseGeometry Center="100,100" RadiusX="80" RadiusY="40" />
</GeometryGroup>
</Border.Clip>
</Border>
如果需要将两个椭圆绘制为不同的颜色,请使用两个边界和路径对象,使用带有“EvenOdd”的同一GeometryGroup,并将每个Border.Clip设置为一个EllipseGeometry对象
如果需要更详细的定义,请使用一个而不是GeometryGroup,并使用ArcSegments定义区域