我正在尝试使用DragDrop.DoDragDrop
. 正如我在这篇文章中所读到的(我也不能为此使用表面拖动框架),我还必须实现 a QueryContinueDragHandler
,我有以下实现:
(在主窗口构造函数中)
this.QueryContinueDrag += (obj, e) =>
{
if(_touchDevice.IsActive)
e.Action = DragAction.Continue;
else
e.Action = DragAction.Drop;
};
(在一些 TouchDown 事件处理程序上)
Object data = new Object();
_touchDevice = e.TouchDevice;
DragDrop.DoDragDrop(this, data, DragDropEffects.Link);
然而,随着这个拖动动作永远不会结束,这_touchDevice.IsActive
将永远是真的,无论 TouchDevice 实际上是否仍然“触摸”。
这个问题也和我的有关,但是我觉得答案不理想,不想把线程变成僵尸。
如何检测 TouchDevice 何时/是否处于非活动状态?