3

我有一个这样定义的椭圆

<Ellipse Stroke="#FF474747" Style="{StaticResource SelectedTemplate}" Fill="{StaticResource RedGradient}" />

我也有两种样式设置,像这样

<RadialGradientBrush x:Key="RedGradient" GradientOrigin="1,1">
    <GradientStop Color="White"/>
    <GradientStop Color="Red" Offset="1"/>
</RadialGradientBrush>

<RadialGradientBrush x:Key="GreenGradient" GradientOrigin="1,1">
    <GradientStop Color="White"/>
    <GradientStop Color="Green" Offset="1"/>
</RadialGradientBrush>

现在,当第一次绘制椭圆时,根据 RedGradientBrush,它是红色的。当绑定值(已选择)为真时,我想使椭圆变为绿色,因此我添加了一个样式来执行此操作

<Style x:Key="SelectedTemplate" TargetType="Ellipse">
    <Style.Triggers>
        <DataTrigger Value="True" Binding="{Binding Selected}">
            <Setter Property="Stroke" Value="White" />
            <Setter Property="StrokeThickness" Value="5" />
            <Setter Property="Fill" Value="{StaticResource GreenGradient}" />
        </DataTrigger>
    </Style.Triggers>
</Style>

现在,当 Selected 为 True 时,只有 StrokeThickness 改变,没有别的?有人可以帮忙吗?

谢谢

4

1 回答 1

2

显然 XAML 内联样式会覆盖您设置的任何内容。这就是为什么只有 StrokeThickness 被更改,因为它没有被内联设置。

于 2009-12-02T15:07:00.397 回答