首页 > 解决方案 > 如何记录屏幕绘画的时间

问题描述

我试图找出如何在 WPF MVVM 应用程序上重新绘制包含网格的 aDateTime时。UserControl我将此代码块放在下面的代码隐藏中,并在应用程序启动时调用它,我还将LayoutUpdated事件添加到用户控件中。我应该更多地关注网格事件吗?我做对了吗?UserControl重绘时还有其他方法可以捕获吗?

this.Dispatcher.BeginInvoke(DispatcherPriority.Render, new Action(() =>
{
   this.SetRequestResponseTime();
}));

标签: c#wpf

解决方案


我处理这个问题的方法是:

当你得到数据。重新启动并启动秒表。

在调度程序上安排秒表的停止:

 Stopwatch sw = Stopwatch.StartNew();
 Application.Current.Dispatcher.InvokeAsync(new Action(() => 
 {  
     sw.Stop();
 }), DispatcherPriority.ContextIdle);
//Set data

将数据呈现给 ui。设置属性或您正在做的任何事情。

因为秒表停止在调度程序优先级较低时被延迟,所以这将在任何绑定和布局完成后运行。

然后,您应该在 sw.ElapsedMilliseconds 中具有所需的时间跨度


推荐阅读