我试图在 Surface 的 WPF 中消除 TouchDevices,这样我就可以忽略非手指触摸,因为 blob 似乎会触发我不想要的事件。
起初我有这样简单的事情
private void SurfaceWindow1_PreviewTouchDown(object sender, TouchEventArgs e)
{
if (!e.TouchDevice.GetIsFingerRecognized() && InteractiveSurface.PrimarySurfaceDevice.IsFingerRecognitionSupported == true)
{
e.Handled = true;
}
}
这可以很好地停止与 ScatterViewItems 内部和操作等事物的触摸交互。但是,在 PreviewTouchDown 之前肯定会发生其他事情,因为我可以使用 blob 激活 SVI 并将其置于顶部,尽管没有发生其他操作。我猜 SVI 上的 TouchEnter 仍然会显示并将其向前推进,但在所有元素上处理 TouchEnter 会给我同样的事情,所以还有其他事情发生。
我查看了 Touch.FrameReported,但在 SVI 听到它之前我无法释放正确的 TouchCaptures
private void myTouchFrameHandler(object sender, TouchFrameEventArgs e)
{
foreach (TouchPoint _tp in e.GetTouchPoints(this)) {
if (!_tp.TouchDevice.GetIsFingerRecognized())
{
this.ReleaseAllTouchCaptures();
}
}
}
有任何想法吗?
谢谢