web-dev-qa-db-ja.com

境界線の背景にStyle.DataTrigger

下に境界線があります。 TextBlockの前景が正しく機能するのに、境界線の背景が常に同じままであるのはなぜですか(IsDeletedプロパティが常にfalseであるかのように)

<Border DockPanel.Dock="Top" BorderBrush="Black" Background="#CBE2FF" BorderThickness="2" CornerRadius="5" Padding="0" Margin="5">
    <Border.Style>
        <Style TargetType="{x:Type Border}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding IsDeleted}" Value="True">
                    <Setter Property="Background" Value="#A00000"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Border.Style>
    <TextBlock Margin="5" FontWeight="Bold" FontSize="14" Text="Queue Details">
        <TextBlock.Style>
            <Style TargetType="{x:Type TextBlock}">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding IsDeleted}" Value="True">
                        <Setter Property="Foreground" Value="White"/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </TextBlock.Style>
    </TextBlock>
</Border>
24
Miles

境界線に背景値を明示的に設定しました。これはトリガーよりも優先されます。 Background="#CBE2FF"を削除して、スタイルに取り入れます。

<Border.Style>
   <Style TargetType="{x:Type Border}">
      <Setter Property="Background" Value="#CBE2FF"/>
      ...

これは役に立ちます。

41
HCL