我遇到了正常文本块的刷新问题。我的代码如下:WPF控件没有正确刷新
public Window1()
{
InitializeComponent();
Thread newt = new Thread(Tick);
newt.Start();
}
void Tick()
{
while (true)
{
textBlock1.Dispatcher.Invoke(
DispatcherPriority.Normal,
new Action(
delegate()
{
textBlock1.Text = DateTime.Now.ToString("h:mm:ss");
Thread.Sleep(1000);
}
));
}
}
随着应用程序的运行,显示器进入睡眠模式12:55:55
。当我在1:02
处重新激活显示器时,我注意到该值每秒更新一次,但是由于小时现在没有十个单位,所以它左对齐,并且不更新12:55:55
秒的单位位置。
因此,它显示的值为:1:02:555
。在显示器进入睡眠状态之前,最后5个来自12:55:55
。
只有在最小化和最大化窗口后,控件才会刷新,在这种情况下,它会显示正确刷新的时间。
这是NVidia FX 1800的显示驱动程序问题。有没有人遇到同样的问题?
我使用了DispatcherPriority.ApplicationIdle。也没有帮助。 – Jeevan 2011-06-15 09:45:51