首页 / C# / c# – 鼠标停止移动后触发的WPF事件
c# – 鼠标停止移动后触发的WPF事件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 鼠标停止移动后触发的WPF事件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1121字,纯文字阅读大概需要2分钟。
内容图文
![c# – 鼠标停止移动后触发的WPF事件](/upload/InfoBanner/zyjiaocheng/758/d81280a01ec7461fa9f1e11032bd8c34.jpg)
我正在写一个WPF应用程序.
我想在鼠标停止移动时触发事件.
这就是我尝试这样做的方式.我创建了一个计时器,倒计时为5秒.每次鼠标移动时,此计时器都会“重置”.
这个想法是鼠标停止移动的那一刻,计时器停止重置,并从5倒数到零,然后调用tick事件处理程序,它显示一个消息框.
好吧,它没有按预期工作,它充满了警报信息.我究竟做错了什么?
DispatcherTimer timer;
private void Window_MouseMove(object sender, MouseEventArgs e)
{
timer = new DispatcherTimer();
timer.Interval = new TimeSpan(0, 0, 5);
timer.Tick += new EventHandler(timer_Tick);
timer.Start();
}
void timer_Tick(object sender, EventArgs e)
{
MessageBox.Show("Mouse stopped moving");
}
解决方法:
你需要在再次挂钩之前解开事件 – 就像这样 –
private void poc_MouseMove(object sender, MouseEventArgs e)
{
if (timer != null)
{
timer.Tick-= timer_Tick;
}
timer = new DispatcherTimer();
timer.Interval = new TimeSpan(0, 0, 5);
timer.Tick += new EventHandler(timer_Tick);
timer.Start();
}
说明
你所做的是每当鼠标移动时,你创建一个新的DispatcherTimer实例并将Tick事件挂钩到它而不取消前一个实例的事件.因此,一旦计时器停止所有实例,您就会看到泛洪消息.
此外,您应该取消它,否则以前的实例将不会被垃圾收集,因为它们仍然被强烈引用.
内容总结
以上是互联网集市为您收集整理的c# – 鼠标停止移动后触发的WPF事件全部内容,希望文章能够帮你解决c# – 鼠标停止移动后触发的WPF事件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。