WPF实现Winform的DoEvent事件 – 凉游浅笔深画眉 – 博客园

C#中的DoEvent事件可以实现消息处理的一些特殊操作,可以做出延迟响应的事件。

C# code如下:

      int tick=Environment.TickCount;
while (Environment.TickCount-tick<2000)
{
Application.DoEvents();
}
timer1.Stop();

延迟两秒响应鼠标事件或点击事件。

WPF中没有DoEvent事件,可以用Dispatcher来实现相关的功能。(涉及多线程,不再详述。)

         /// <summary>
/// 模仿C#的Application.Doevent函数。可以适当添加try catch 模块
/// </summary>
public void DoEvent()
{
DispatcherFrame frame = new DispatcherFrame();
Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background, new DispatcherOperationCallback(ExitFrame), frame);
Dispatcher.PushFrame(frame);
}
public object ExitFrame(object f)
{
((DispatcherFrame)f).Continue = false;
return null;
}
//***********************************************

来源: WPF实现Winform的DoEvent事件 - 凉游浅笔深画眉 - 博客园

weinxin
我的微信
一个码农、工程狮、集能量和智慧于一身的、DIY高手、小伙伴er很多的、80后奶爸。
Igor
  • 版权声明: 发表于 2019-01-2415:16:57
  • 转载注明:http://blog.tsingmac.com/prolions/codelanguage/mscs/1074/
.NET 升级助手概述 C/C++/C#

.NET 升级助手概述

你可能有些应用当前正在 .NET Framework 上运行,而你想将它们移植到 .NET 6。 .NET 升级助手工具可帮助完成此过程。 本文提供以下内容: .NET 升级助手概述。 你可能有些应用...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: