【发布时间】:2012-10-14 01:17:40
【问题描述】:
在 WPF 中通过 XAML 到我的 viewModel,我想检测画布上的鼠标移动,并仅在按下鼠标左键时对其做出反应。具体来说,我想从我的 viewModel 中的方法中获取事件,包括鼠标位置和鼠标按钮状态。有人可以帮我解决这个问题吗?
我知道我可以在代码隐藏中使用常规 WPF 事件,但在我看来,这样做会“投降”,屈服于 XAML 学习曲线,所以这是最后的手段。
我发现了这个问题,但我买不起 Expression Blend,所以它对我没有帮助: WPF Mouse Over
我看过
<EventTrigger RoutedEvent="Canvas.MouseMove"> . . .,
但这看起来只适用于动画。
这似乎是人们想要做的常见事情,但我在上面找不到任何东西。
【问题讨论】:
-
关于您将代码隐藏等同于“投降”,请允许我在这种情况下不同意。这可能是代码背后的有效案例。背后的代码可以使您的视图更容易自动化。除非您的业务逻辑受到影响,否则您可以使用视图代码隐藏中的代码。不要过于复杂。
-
好吧,让我同意你不同意我的观点。如果这是一个适合代码隐藏的明确案例,那么,是的,我不会投降。我想我的意思是,在不首先寻求仅 XAML 的方式(如果有的话)的情况下诉诸代码隐藏,那将是投降。