Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 组合两个半透明椭圆_C#_Silverlight - Fatal编程技术网

C# 组合两个半透明椭圆

C# 组合两个半透明椭圆,c#,silverlight,C#,Silverlight,有一个奇怪的。我有两个不透明度为0.7的椭圆。我想做的是,两个椭圆交叉的地方,显示不同的颜色。在旧的WF图像中,我会遍历每个像素并交换颜色,但我不确定如何在Silverlight中使用图层。有人有什么想法吗 谢谢 编辑:很抱歉,各个元素的属性有一些错误。这是经过测试的: 创建一个并将其放置为Path.Data,其中包含两个作为子元素的元素。将GeometryGroup.FillRule设置为“EvenOdd”,以便两个椭圆覆盖的区域都不填充,并将“Fill”设置为希望椭圆具有的颜色(此处:Ali

有一个奇怪的。我有两个不透明度为0.7的椭圆。我想做的是,两个椭圆交叉的地方,显示不同的颜色。在旧的WF图像中,我会遍历每个像素并交换颜色,但我不确定如何在Silverlight中使用图层。有人有什么想法吗


谢谢

编辑:很抱歉,各个元素的属性有一些错误。这是经过测试的:

创建一个并将其放置为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定义区域