WPF与Mvvm光处理鼠标和触摸
本文关键字:鼠标 触摸 处理 Mvvm WPF | 更新日期: 2023-09-27 18:06:17
目前我必须开发一个非常简单的WPF用户控件,允许用户在画布上选择几个点。我遇到的困难是,使用触摸屏的用户应该能够通过触发TouchDown事件而没有触摸屏的用户应该使用鼠标,从而触发MouseLeftButtonDown事件。有没有一种简单的方法来处理这两种情况而不重复代码?此外,我需要使用Mvvm Light,所以代码背后的解决方案,如如何让触摸屏使用鼠标事件,而不是触摸事件在c#应用程序不会做的技巧。
无论您是否使用MVVM,您的链接问题都为您提供了答案。使用MVVM 而不是意味着你不能处理UI控件事件。这意味着你应该写一个Attached Property
来处理它们。所以,你的答案是肯定的,你可以同时处理这两个事件,并以几乎相同的方式,你的链接页面建议。
唯一的区别是处理程序必须附加到Attached Property
中的事件。在这里,我将简要地解释这个过程,并请求您查看我的答案,而不是再次讨论整个故事,将事件传递给ViewModel的最佳方式是什么?关于代码示例的问题
首先声明你的Attached Property
与它的getter和setter,并确保它有一个PropertyChangedCallback
处理程序附加。PropertyChangedCallback
处理程序是您将单个处理程序附加到事件的地方(代码示例仅附加单个事件)。这只是意味着它只会在设置Attached Property
时将处理程序附加到事件。最后,只需添加单个处理程序来处理这两个事件。