c# - 如何记录屏幕绘画的时间
问题描述
我试图找出如何在 WPF MVVM 应用程序上重新绘制包含网格的 aDateTime
时。UserControl
我将此代码块放在下面的代码隐藏中,并在应用程序启动时调用它,我还将LayoutUpdated
事件添加到用户控件中。我应该更多地关注网格事件吗?我做对了吗?UserControl
重绘时还有其他方法可以捕获吗?
this.Dispatcher.BeginInvoke(DispatcherPriority.Render, new Action(() =>
{
this.SetRequestResponseTime();
}));
解决方案
我处理这个问题的方法是:
当你得到数据。重新启动并启动秒表。
在调度程序上安排秒表的停止:
Stopwatch sw = Stopwatch.StartNew();
Application.Current.Dispatcher.InvokeAsync(new Action(() =>
{
sw.Stop();
}), DispatcherPriority.ContextIdle);
//Set data
将数据呈现给 ui。设置属性或您正在做的任何事情。
因为秒表停止在调度程序优先级较低时被延迟,所以这将在任何绑定和布局完成后运行。
然后,您应该在 sw.ElapsedMilliseconds 中具有所需的时间跨度
推荐阅读
- hyperledger-fabric - 在 HyperLedger Composer 查询中获取资产计数?
- ubuntu - 在 i3 中使用来自 kwallet 的密码
- python - 如何在 python 中使用子进程捕获“ps -ef|grep 'string'”的完整输出?
- c++ - 寻找使用 GCC >= 4.9.2 运行 linux 的大端硬件
- c - C 编程中的可变参数数量
- github - 我可以在没有分叉的情况下提出拉取请求吗?
- python - python: Pandas - 将复杂的 json 转换为数据框
- javascript - 新的 ios chrome 版本将保持 pull-to-refresh
- html - 如何使用 xpath 解析 html 字符串
- reactjs - VSCode IDE 编写反应代码的问题