两种不同形状的一种风格

时间:2017-02-27 22:41:32

标签: wpf

我在用户控件中有一个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,因此是否可以创建一个既可以使用的样式,又可以使用两种基本相同的样式?

1 个答案:

答案 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}" ... />