WPF 后台数据触发改变界面状态-心跳实现
2024-10-01 12:24:41
今年做的一个上位机工控WPF项目,做个小小的总结把,以后随时来找
请不要带血乱喷,我只是菜鸟.___by 鲍队
类似于这样子的;大致的意思是:一个代码变量,通过改变变量的值,绑定这个变量的这个圆颜色也在变化 就是一种心跳效果
在网上数据触发的感觉不多,废了不少时间,这里做个总结
1:通知
class NotifyBase : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanegd(string propertyName)
{
if (PropertyChanged != null)
{
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
class NotifyModels:NotifyBase
{
private bool heartBeat; public bool HeartBeat
{
get { return heartBeat; }
set { heartBeat = value;
OnPropertyChanegd("HeartBeat");
}
}
}
第一个就不用说了,通知的基类,
第二个是我需要的数据,就是bool类型的心跳(平常可以检测与下位机其他通信软件的通信状态,直观)
2:矩形的代码
这个数据触发 Binding="{Binding HeartBeat}" 绑定了后台DataContext的心跳
改变进行对应的样式改变;我用的是bool型,所以用的True/False;看类似int也可以
<Ellipse x:Name="ellStatus" VerticalAlignment="Center" HorizontalAlignment="Center" MinHeight="" MinWidth="" MaxHeight="" MaxWidth="" >
<Ellipse.Style >
<Style TargetType="{x:Type Ellipse}">
<Style.Triggers>
<DataTrigger Binding="{Binding HeartBeat}" Value="True">
<Setter Property="Shape.Fill" Value="Red"/>
</DataTrigger>
<DataTrigger Binding="{Binding HeartBeat}" Value="False">
<Setter Property="Shape.Fill" Value="White"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Ellipse.Style>
</Ellipse>
3:后台的代码
利用一个计时器改变通知里面的值
赋给
ellStatus.DataContext = models;
就完成了
public partial class MainWindow : Window
{
NotifyModels models;
private System.Timers.Timer timer;
public MainWindow()
{
InitializeComponent();
models = new NotifyModels();
ellStatus.DataContext = models;
timer = new System.Timers.Timer();
timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
timer.Enabled = true;
} void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
models.HeartBeat = !models.HeartBeat;
}
最新文章
- hbase 遇到过的问题
- 【转】c#获取网页地址参数
- UITextField-修改占位文字和光标的颜色,大小
- ubuntu 安装apache2并配置cgi,搭建mimetex转化公式图片的服务
- URL-统一资源定位器
- 《Linux程序设计》--读书笔记---第十三章进程间通信:管道
- 【CodeForces 599A】D - 特别水的题4- Patrick and Shopping
- Unity3d Shader
- nfa转dfa,正式完成
- codeforces 685B Kay and Snowflake 树的重心
- 题目1444:More is better
- hdu5067Harry And Dig Machine(TSP旅行商问题)
- 项目需要简单些了个WEB APP 的弹出窗
- Android事件机制
- java web 学习笔记 编码问题总结
- iOS - Mac 常用设置
- django的FBV和CBV
- 【转】tomcat logs 目录下各日志文件的含义
- UVALive 4254 Processor(二分)
- android使用Pull解析来自服务器的xml文件时出现错误以及解决方案
热门文章
- ASP.NET WebApi OWIN 实现 OAuth 2.0
- html5 canvas常用api总结(二)--绘图API
- 拼图小游戏之计算后样式与CSS动画的冲突
- ActionContext.getContext().getSession()
- BPM配置故事之案例12-触发另外流程
- iOS之UILabel的自动换行
- Struts2.5需要的最少jar文件
- Spark笔记:RDD基本操作(上)
- 《Entity Framework 6 Recipes》中文翻译系列 目录篇 -持续更新
- Spring Bean详细讲解