首页 文章

XAML中的DataTrigger / Style快速

提问于
浏览
3

我有一个Ellipse定义如此

<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)为true时将椭圆设为绿色,所以我添加了一个Style来执行此操作

<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被更改,因为它没有设置为内联 .

相关问题