DataTrigger / Стиль быстро в XAML - PullRequest
       27

DataTrigger / Стиль быстро в XAML

3 голосов
/ 02 декабря 2009

У меня есть Эллипс, определенный как

<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>

Теперь, когда Выбрано Истинно ТОЛЬКО StrokeThickness, ничего больше? Может кто-нибудь помочь, пожалуйста?

Спасибо

1 Ответ

2 голосов
/ 02 декабря 2009

Видимо, встроенные стили XAML переопределяют любые установленные вами. Вот почему менялся только StrokeThickness, поскольку он не был встроен.

...