2010-07-30 10 views
23

Ho il bordo sottostante. Perché il primo piano del mio lavoro TextBlock correttamente, ma lo sfondo del confine sarebbe rimasto sempre lo stesso (come se la proprietà isDeleted è sempre false)Style.DataTrigger on Border background

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

risposta

37

Hai esplicitamente impostare il valore di fondo sul confine. Questo ha più priorità del trigger. Rimuovi lo Background="#CBE2FF" e prendilo nello stile.

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

Questo aiuterà.

+0

perfetto. non sapevo se l'ho impostato nella proprietà che ha superato questo. Grazie – Miles