Style.DataTrigger sur Fond de Frontière

J'ai la bordure ci-dessous. Pourquoi le premier plan de mon TextBlock fonctionnerait-il correctement mais l'arrière-plan de la bordure resterait-il toujours le même (comme si la propriété IsDeleted était toujours 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
demandé sur abatishchev 2010-07-30 21:16:57

1 réponses

Vous avez explicitement défini la valeur d'arrière-plan sur la bordure. Cela a plus de priorité que le déclencheur. Retirez le Background="#CBE2FF" et prenez-le dans le style.

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

Cela aidera.

38
répondu HCL 2010-07-30 17:22:52