欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

wpf(使用定时器)使用定时器操作UI界面

程序员文章站 2022-07-11 11:12:35
在项目实践中,我们 可能会遇到需要将一些控件上显示的内容只显示一段时间过后清空。 下面我们来实现这种操作: 首先需要注意的是:在wpf中涉及到界面操作的话,一定要使用定时器DispatcherTime,DispatcherTimer是为wpf专门设计的,不然的话使用其他种类的定时器会提示界面资源被其 ......

在项目实践中,我们 可能会遇到需要将一些控件上显示的内容只显示一段时间过后清空。

下面我们来实现这种操作:

首先需要注意的是:在wpf中涉及到界面操作的话,一定要使用定时器dispatchertime,dispatchertimer是为wpf专门设计的,不然的话使用其他种类的定时器会提示界面资源被其他线程所拥有而无法更新界面。

首次我们需要声明一个dispatchertimer定时器

private  dispatchertimer showtimer = new dispatchertimer();

然后绑定定时器要处理的方法

 showtimer.tick += new eventhandler(setnull);       
private void setnull(object sender,eventargs e) { label1.content = ""; }

之后,我们将规定多长时间后触发定时器绑定的方法,并开启定时器

showtimer.interval = new timespan(0, 0, 0, 6);
showtimer.start();        

全部代码如下:

using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
using system.windows;
using system.windows.controls;
using system.windows.data;
using system.windows.documents;
using system.windows.input;
using system.windows.media;
using system.windows.media.imaging;
using system.windows.navigation;
using system.windows.shapes;
using system.threading;
using system.windows.threading;

namespace 使控件内容显示一段时间后消失
{
    /// <summary>
    /// mainwindow.xaml 的交互逻辑
    /// </summary>
    public partial class mainwindow : window
    {
        public mainwindow()
        {
            initializecomponent();
        }
        private  dispatchertimer showtimer = new dispatchertimer();
        private void button_click(object sender, routedeventargs e)
        {
            setlabel("jianjipan,您好");
            showtimer.tick += new eventhandler(setnull);
            showtimer.interval = new timespan(0, 0, 0, 6);
            showtimer.start();          
        }
        private void setlabel(string text)
        {           
            label1.content = text;          
        }
        private  void setnull(object sender,eventargs e)
        {
            label1.content = "";
        }
       
    }
}

实现的效果就是:点击button按钮后,在label控件上会出现“jianjipan,您好”的字符串,过6s之后,label控件不显示任何值

源代码如下:(啊啊啊啊啊  小白,不知道源代码怎么上传,求大神告知)