2010-07-30 5 views
23

J'ai la bordure ci-dessous. Pourquoi le premier plan de mon travail TextBlock correctement, mais l'arrière-plan de la frontière restent toujours les mêmes (comme si la propriété isDeleted est toujours faux)Style.DataTrigger sur fond de bordure

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

Répondre

37

Vous avez définir la valeur explicite de fond à la frontière. 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.

+0

parfait. Je ne savais pas si je l'ai mis dans la propriété, il a surpassé cela. Merci – Miles