这是我的xaml的简化版本:
<Path>
<Path.Data>
<GeometryGroup>
<EllipseGeometry/>
<EllipseGeometry/>
</GeometryGroup>
</Path.Data>
</Path>
我希望第一个EllipseGeometry
被填充,而不是第二个Fill
。但Path
属性是在Paths
级定义的。
我可以定义两个EllipseGeometry
,每个Stroke
包含Path
,但我希望它们共享路径StaticResource
。 {{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>
这样您就可以在一个地方定义笔划并分别定义填充。当然,您不必使用画布作为容器。
干杯, 埃里克