【问题标题】:Style.DataTrigger on Border background边框背景上的 Style.DataTrigger
【发布时间】:2011-03-23 09:04:39
【问题描述】:

我有下面的边框。为什么我的 TextBlock 的 Foreground 可以正常工作,但边框的 Background 始终保持不变(好像 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>

【问题讨论】:

    标签: wpf xml styles border datatrigger


    【解决方案1】:

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

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

    这会有所帮助。

    【讨论】:

    • 完美。我不知道我是否将它设置在它超过了它的属性中。谢谢
    猜你喜欢
    • 1970-01-01
    • 2020-11-12
    • 1970-01-01
    • 1970-01-01
    • 2013-07-06
    • 1970-01-01
    • 2012-12-30
    • 2010-11-20
    • 2011-09-12
    相关资源
    最近更新 更多