3

私はそのように定義された楕円を持っています

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

私もそのように2つのスタイルを設定しています

<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に従って赤になります。バインドされた値(選択済み)がtrueの場合に楕円を緑色にしたいので、これを行うためにスタイルを追加しました

<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 に答える