边框背景的样式数据触发器

29

我有下面的边框。为什么我的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>
1个回答

50

您在边框上明确设置了背景值。这比触发器的优先级更高。删除 Background="#CBE2FF" 并将其放入样式中。

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

这会有所帮助。


完美。我不知道如果我将其设置在属性中,它是否会覆盖那个。谢谢。 - Miles

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接