Advertisement

触离窗口未能捕捉到MouseLeave事件

阅读量:

在近期的项目开发过程中,于列表功能中发现了一个异常问题:

采用WPF开发的一款软件,在触摸本上运行时,右侧设置了一个可拖动的列表按钮,要求该按钮具备点击与上下拖动的功能,并且在拖动至列表首尾项时能够触发动画效果。事件处理部分主要依赖MouseLeftButtonDown、MouseLeftButtonUp、MouseLeave以及MouseMove等事件。然而,在用户快速将右侧列表从窗口区域移出时(即黑色区域),动画未能正常触发,导致列表出现卡顿现象,具体表现为未能进入MouseLeave事件。

通过进一步分析与测试发现,使用鼠标进行拖动操作时不会出现此问题,MouseLeave事件能够正常捕获。但当使用触摸板操作时却无法捕获到该事件。考虑到触摸板与鼠标的交互机制存在差异,触摸板支持Touch事件,因此在程序中补充了TouchLeave事件的处理逻辑,并在该事件中实现离开时的动画效果。经过测试验证后问题得以解决。

///


/// 触摸离开事件处理逻辑
///

void FoodBtnListPanel_TouchLeave(object sender, TouchEventArgs e)
{
Logger.log.Debug("已进入TouchLeave事件");
TouchPoint point = e.Ge

全部评论 (0)

还没有任何评论哟~