gpt4 book ai didi

c# - 当没有满足任何 DataTrigger 值时设置属性 WPF

转载 作者:太空狗 更新时间:2023-10-29 22:25:34 24 4
gpt4 key购买 nike

我对 WPF 和 C# 还很陌生,所以可能有更好的方法来完成我正在尝试的事情。因此,我对其他方法持开放态度。

就我所知,我正在尝试为我工作的维护部门编写数字 VMB(可视化管理板)。他们想要一个部分来显示我们的工厂没有发生事故的天数:“Days Safe”。我成功地为这个 TextBlock 设置了绑定(bind):

<TextBlock Text="{Binding DaysSafe}" FontSize="60"  FontWeight="Bold" HorizontalAlignment="Center" VerticalAlignment="Center" >

我有一系列 DataTriggers,可以根据文本的值将文本的前景色更改为特定颜色。基本上,我希望 DaysSafe 文本为:0时红色1 时为橙色,依此类推(您可以在下面的代码中看到颜色):

<StackPanel VerticalAlignment="Center" >
<TextBlock Text="{Binding DaysSafe}" FontSize="60" FontWeight="Bold" HorizontalAlignment="Center" VerticalAlignment="Center" >
<TextBlock.Style>
<Style TargetType="{x:Type TextBlock}">
<Style.Triggers >
<DataTrigger Binding="{Binding DaysSafe}" Value="0">
<Setter Property="Foreground" Value="Red"/>
</DataTrigger>
<DataTrigger Binding="{Binding DaysSafe}" Value="1">
<Setter Property="Foreground" Value="OrangeRed" />
</DataTrigger>
<DataTrigger Binding="{Binding DaysSafe}" Value="2">
<Setter Property="Foreground" Value="Orange" />
</DataTrigger>
<DataTrigger Binding="{Binding DaysSafe}" Value="3">
<Setter Property="Foreground" Value="Yellow" />
</DataTrigger>
<DataTrigger Binding="{Binding DaysSafe}" Value="4">
<Setter Property="Foreground" Value="Yellow" />
</DataTrigger>
<DataTrigger Binding="{Binding DaysSafe}" Value="5">
<Setter Property="Foreground" Value="GreenYellow" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</StackPanel>

此功能正常,颜色会在天数较低时发生变化。但是,当 DaysSafe 的值超过 5 时,我希望前景色“默认”为绿色。现在,当我希望它为绿色时,任何高于 5 的值都是黑色。我尝试在第一个 TextBlock 部分中添加 foreground="green"属性,但这会覆盖 DataTriggers 并且前景始终为绿色。

对于如何为前景创建默认值有什么帮助吗?谢谢。

最佳答案

您可以只添加一个 setter ,将 TextBlock 的默认前景设置为绿色:

<Style TargetType="{x:Type TextBlock}">
<Setter Property="Foreground" Value="Green" />
<Style.Triggers >
<DataTrigger Binding="{Binding DaysSafe}" Value="0">
<Setter Property="Foreground" Value="Red"/>
</DataTrigger>
<DataTrigger Binding="{Binding DaysSafe}" Value="1">
<Setter Property="Foreground" Value="OrangeRed" />
</DataTrigger>
<DataTrigger Binding="{Binding DaysSafe}" Value="2">
<Setter Property="Foreground" Value="Orange" />
</DataTrigger>
<DataTrigger Binding="{Binding DaysSafe}" Value="3">
<Setter Property="Foreground" Value="Yellow" />
</DataTrigger>
<DataTrigger Binding="{Binding DaysSafe}" Value="4">
<Setter Property="Foreground" Value="Yellow" />
</DataTrigger>
<DataTrigger Binding="{Binding DaysSafe}" Value="5">
<Setter Property="Foreground" Value="GreenYellow" />
</DataTrigger>
</Style.Triggers>
</Style>

关于c# - 当没有满足任何 DataTrigger 值时设置属性 WPF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41766715/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com