XAML中的DataTrigger/Style快速入门

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。当绑定的值(Selected)为真时,我想将椭圆变成绿色,因此我添加了一个样式来实现这一点。

<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才会改变,其他什么都不会发生?有人能帮忙吗?
谢谢。
1个回答

2

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接