WPF DataTrigger 改变控件颜色
之前这篇博文WPF 做一个指示灯,用 True
和 False
两种情况来进行判断,其实也可以用 int 类型进行多个条件的判断。
XAML:
<Window.DataContext>
<local:TestVM/>
</Window.DataContext>
<Grid>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<Ellipse Width="50" Height="50">
<Ellipse.Style>
<Style TargetType="Ellipse">
<Style.Triggers>
<DataTrigger Binding="{Binding PresentColor}" Value="0">
<Setter Property="Shape.Fill" Value="Orange"/>
</DataTrigger>
<DataTrigger Binding="{Binding PresentColor}" Value="1">
<Setter Property="Shape.Fill" Value="Green"/>
</DataTrigger>
<DataTrigger Binding="{Binding PresentColor}" Value="2">
<Setter Property="Shape.Fill" Value="Red"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Ellipse.Style>
</Ellipse>
<Button Content="换色" Command="{Binding ChangeColorCommand}" Margin="10 0 0 0" Height="30" Width="80"/>
</StackPanel>
</Grid>
ViewModel:
public class TestVM : ViewModelBase
{
private int _PresentColor = 0;
public int PresentColor
{
get { return _PresentColor; }
set { _PresentColor = value; RaisePropertyChanged(nameof(PresentColor)); }
}
private RelayCommand _changeColorCommand;
public RelayCommand ChangeColorCommand
{
get {
if (_changeColorCommand == null)
_changeColorCommand = new RelayCommand(ChangeColor);
return _changeColorCommand; }
set { _changeColorCommand = value; RaisePropertyChanged(nameof(ChangeColorCommand)); }
}
private void ChangeColor()
{
if (PresentColor < 2)
PresentColor++;
else
PresentColor = 0;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了