我在用户控件中有一个Rectangle和Ellipse形状,两者都具有相同的样式。
<Style x:Key="StyleEllipse" TargetType="Ellipse">
<Setter Property="Fill" Value="#FFCCCCCC"/>
<Setter Property="Stroke" Value="White"/>
<Setter Property="StrokeThickness" Value="1"/>
</Style>
<Style x:Key="StylePolygon" TargetType="Polygon">
<Setter Property="Fill" Value="#FFCCCCCC"/>
<Setter Property="Stroke" Value="White"/>
<Setter Property="StrokeThickness" Value="1"/>
</Style>
Ellipse和Polygon都继承自System.Windows.Shapes,因此是否可以创建一个既可以使用的样式,又可以使用两种基本相同的样式?
答案 0 :(得分:1)
Style可以将Shape作为TargetType:
<Style x:Key="ShapeStyle" TargetType="Shape">
<Setter Property="Fill" Value="#FFCCCCCC"/>
<Setter Property="Stroke" Value="White"/>
<Setter Property="StrokeThickness" Value="1"/>
</Style>
...
<Rectangle Style="{StaticResource ShapeStyle}" ... />
<Ellipse Style="{StaticResource ShapeStyle}" ... />