在WPF中如何让界面上的时间可以实时更新?

zhuhaoonly 2010-12-09 04:07:46
在WPF中在WPF中如何让界面上的时间可以实时更新,
我在程序中如下写:
String date = System.DateTime.Now.Year.ToString()+"-" + System.DateTime.Now.Month.ToString()+"-" + System.DateTime.Now.Day.ToString()+"-" + System.DateTime.Now.Hour.ToString()+":" + System.DateTime.Now.Minute.ToString()+":" + System.DateTime.Now.Second.ToString();

这些可以获取到系统的当前时间,但是显示在界面上的世界是不会实时更新的,我想如果想要时间实时更新的话?应该怎么写呢?
...全文
1727 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuhaoonly 2010-12-09
  • 打赏
  • 举报
回复
嗯,谢谢,这个问题我已经解决了。解决方法如下:
在 WPF 中不再有类似 WinForm 中的 Timer 控件,因此,需要使用 DispatcherTimer 类来实现类似 Timer 的定时执行事件,该事件使用委托方式实现。DispatcherTimer 类在 System.Windows.Threading 下,需要 using System.Windows.Threading 命名空间。

简单示例代码如下,该代码实现在 WPF 窗体的标题实时显示当前系统时间。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
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.Windows.Threading;

namespace TimerWindow
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
DispatcherTimer timer = new DispatcherTimer();

public MainWindow()
{
InitializeComponent();

timer.Tick += new EventHandler(timer_Tick);
//timer.Interval = TimeSpan.FromSeconds(0.1); //设置刷新的间隔时间
timer.Start();
}

void timer_Tick(object sender, EventArgs e)
{
this.Title = string.Concat("TimerWindow ", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"));
}

}
}


摘自红色黑客联盟(www.7747.net) 原文:http://www.7747.net/kf/201011/79090.html
shancheng44 2010-12-09
  • 打赏
  • 举报
回复 1
你这句代码执行过之后还会再执行么?如果还会再执行它,那界面上行的时间就会更新了


我没搞过WPF,不过C#语法应该是一样的,取当前时间不要用这么麻烦


System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");

这一句就行了

110,529

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧