WPF实现Winform的DoEvent事件
2016-09-17 02:00
232 查看
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;
}
//***********************************************
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实现C#中DoEvent事件(可实现延迟响应事件)
- 在 winform 中的 datagrid 中实现单元格双击事件
- C#的委托事件在winform窗体中实现传值备忘
- WinForm实现移除控件某个事件的方法
- winform中Load事件和shown事件以及自动登陆的实现
- WPF:自定义路由事件的实现
- 在 winform 中的 datagrid 中实现单元格双击事件
- winform中通过事件实现窗体传值思路【待修改】
- winform中通过事件实现窗体传值思路【待修改】
- WPF控件--利用Winform库中的NotifyIcon实现托盘小程序
- WPF中实现Timer 事件
- WinForm枚举容器中的控件,实现控件统一事件处理机制
- 用鼠标左击事件实现移动WinForm中控件
- WPF ,利用Winform库中的NotifyIcon实现托盘小程序
- 告诉你吧,一套皮肤在winform与wpf开发模式下实现的界面效果同样精彩,winform界面和wpf界面。
- WINFORM 中datagridview 里绑定combobox实现级联事件
- C#的委托事件在winform窗体中实现传值备忘
- WPF第二篇Button--事件实现原理,多边形Button,阴影效果
- C#实现WinForm捕获最小化事件的方法
- 利用委托事件实现Winform窗体之间的同步刷新