Path GeometryGroup内的不同填充行为

时间:2013-10-18 12:57:36

标签: wpf xaml

这是我的xaml的简化版本:

<Path>
  <Path.Data>
    <GeometryGroup>
      <EllipseGeometry/>
      <EllipseGeometry/>
    </GeometryGroup>
   </Path.Data>  
</Path>

我希望第一个EllipseGeometry被填充,而不是第二个Fill。但Path属性是在Paths级定义的。

我可以定义两个EllipseGeometry,每个Stroke包含Path,但我希望它们共享路径StaticResource。 {{1}}的笔划将被触发器修改,因此我无法使用{{1}}。我也不想复制触发器。

1 个答案:

答案 0 :(得分:0)

您可以使用共享样式定义笔划,并使用两个路径:

    <Canvas>
        <Canvas.Resources>
            <Style TargetType="Path">
                <Style.Triggers>
                    <DataTrigger>
                        <Setter Property="Stroke" Value="AliceBlue" />
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </Canvas.Resources>
        <Path Fill="Green">
            <Path.Data>
                <EllipseGeometry />
            </Path.Data>
        </Path>
        <Path Fill="Red">
            <Path.Data>
                <EllipseGeometry />
            </Path.Data>
        </Path>
    </Canvas>

这样您就可以在一个地方定义笔划并分别定义填充。当然,您不必使用画布作为容器。

干杯, 埃里克