今年做的一个上位机工控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;
}

最新文章

  1. hbase 遇到过的问题
  2. 【转】c#获取网页地址参数
  3. UITextField-修改占位文字和光标的颜色,大小
  4. ubuntu 安装apache2并配置cgi,搭建mimetex转化公式图片的服务
  5. URL-统一资源定位器
  6. 《Linux程序设计》--读书笔记---第十三章进程间通信:管道
  7. 【CodeForces 599A】D - 特别水的题4- Patrick and Shopping
  8. Unity3d Shader
  9. nfa转dfa,正式完成
  10. codeforces 685B Kay and Snowflake 树的重心
  11. 题目1444:More is better
  12. hdu5067Harry And Dig Machine(TSP旅行商问题)
  13. 项目需要简单些了个WEB APP 的弹出窗
  14. Android事件机制
  15. java web 学习笔记 编码问题总结
  16. iOS - Mac 常用设置
  17. django的FBV和CBV
  18. 【转】tomcat logs 目录下各日志文件的含义
  19. UVALive 4254 Processor(二分)
  20. android使用Pull解析来自服务器的xml文件时出现错误以及解决方案

热门文章

  1. ASP.NET WebApi OWIN 实现 OAuth 2.0
  2. html5 canvas常用api总结(二)--绘图API
  3. 拼图小游戏之计算后样式与CSS动画的冲突
  4. ActionContext.getContext().getSession()
  5. BPM配置故事之案例12-触发另外流程
  6. iOS之UILabel的自动换行
  7. Struts2.5需要的最少jar文件
  8. Spark笔记:RDD基本操作(上)
  9. 《Entity Framework 6 Recipes》中文翻译系列 目录篇 -持续更新
  10. Spring Bean详细讲解