WPF中使用定时器更新元素-DispatcherTimer

  • 在WPF中使用定时器来更新UI元素是一种常见且有用的做法,特别是当你需要基于时间间隔来刷新数据或执行某些操作时。DispatcherTimer是WPF中用于在UI线程上执行周期性任务的理想选择,因为它确保了对UI元素的更新是线程安全的

例子程序

每隔0.5s 界面中的元素更改颜色

Xaml程序

XML 复制代码
<Grid>
    <Rectangle x:Name="BlinkingRectangle" Width="100" Height="100" HorizontalAlignment="Center" VerticalAlignment="Center" Fill="Red"/>
</Grid>

CS程序

cs 复制代码
private DispatcherTimer _timer;
private bool _isRed = true;
public Window2()
{
    InitializeComponent();
    // 初始化定时器  
    _timer = new DispatcherTimer();
    _timer.Interval = TimeSpan.FromSeconds(0.5); // 每0.5秒切换一次颜色  
    _timer.Tick += Timer_Tick; // 设置Tick事件处理程序  
    _timer.Start(); // 启动定时器 
}

private void Timer_Tick(object sender, EventArgs e)
{
    // 切换颜色  
    if (_isRed)
    {
        BlinkingRectangle.Fill = new SolidColorBrush(Colors.Green);
        _isRed = false;
        Console.WriteLine("绿色");
    }
    else
    {
        BlinkingRectangle.Fill = new SolidColorBrush(Colors.Red);
        _isRed = true;
        Console.WriteLine("红色");
    }
}

// 确保在窗口关闭时停止定时器  
protected override void OnClosed(EventArgs e)
{
    _timer.Stop();
    base.OnClosed(e);
}
相关推荐
光泽雨2 天前
WPF 音视频四大核心方案对比
wpf·音视频
浪扼飞舟3 天前
WPF(数据绑定)
wpf
samble4 天前
从零搭建半导体设备上位机(四):单实例、启动流程与配置文件,App 里那 526 行到底在干什么
wpf·配置文件·单实例
浪扼飞舟4 天前
WPF(控件的继承树、内容控件、布局控件)
wpf
avi91117 天前
电影开源Jevdo - 源码介绍(vue版)没有android 和 没有wpf
android·wpf·框架·数据爬虫·meego·电影管理
吾与谁归in8 天前
C#脚本工具,支持智能提示自动补全(WPF + Roslyn + AvalonEdit)
开发语言·c#·wpf
昂好的day8 天前
WPF 从零入门(上):WPF 是什么、XAML 语法、布局与样式全解
开发语言·c#·wpf
影寂ldy9 天前
WPF导航窗体+Page页面跳转 知识点整理
wpf
He BianGu9 天前
【WPF-Control教程】IOC 依赖注入
c#·wpf·wpf-control
He BianGu9 天前
【WPF-Control教程】H.Extensions.Behvaiors 开发文档
c#·wpf·wpf-control