【问题标题】:WPF with Mvvm Light handling mouse and touchWPF with Mvvm Light 处理鼠标和触摸
【发布时间】:2014-06-02 12:46:55
【问题描述】:

目前我必须开发一个非常简单的 WPF 用户控件,允许用户在画布上选择多个点。我遇到的困难是,使用触摸屏应该能够通过触发 TouchDown 事件来实现,而没有触摸屏的用户应该使用鼠标并因此触发 MouseLeftButtonDown 事件。有没有一种简单的方法可以在不重复代码的情况下处理这两种情况?另外,我需要使用 Mvvm Light,所以像 How to get Touchscreen to use Mouse Events instead of Touch Events in C# app 这样的代码隐藏解决方案不会起到作用。

【问题讨论】:

  • 就像一个问题:你为什么将 MVVM 用于“非常简单”的 WPF 应用程序?

标签: c# wpf mvvm touch


【解决方案1】:

无论您是否使用 MVVM,您的链接问题都会为您提供答案。使用 MVVM 确实意味着您无法处理 UI 控件事件。这只是意味着您应该写一个Attached Property 来为您处理它们。所以,你的答案是肯定的,你可以一起处理这两个事件,并且几乎与链接页面所建议的方式相同。

您唯一的区别是处理程序必须附加到Attached Property 中的事件。与其在这里再次回顾整个故事,我将简单地解释一下过程,并请求您查看我对What's the best way to pass event to ViewModel?问题的回答,以获取代码示例。

首先declare your Attached Property 带有它的getter 和setter,并确保它附加了PropertyChangedCallback handlerPropertyChangedCallback 处理程序是将单个处理程序附加到事件的位置(代码示例仅附加单个事件)。这只是意味着它只会在设置 Attached Property 时将处理程序附加到事件。最后,只需添加您的单个处理程序来处理这两个事件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-06
    • 1970-01-01
    • 1970-01-01
    • 2015-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多