好的,我已经知道如何使用 LayoutTransform 和 ScaleTransform 来缩放 UI 元素网格。我不明白的是如何让我的视图响应 CTRL+MouseWheelUp\Down 来做到这一点,以及如何使代码适合 MVVM 模式。
我的第一个想法是将 ZoomFactor 存储为一个属性,并绑定到一个命令来调整它。
我在看类似的东西:
<UserControl.InputBindings>
<MouseBinding Command="{Binding ZoomGrid}" Gesture="Control+WheelClick"/>
</UserControl.InputBindings>
但我看到两个问题:
1)我认为没有办法判断轮子是向上还是向下移动,我也看不出如何确定多少。我见过 MouseWheelEventArgs.Delta,但不知道如何获得它。
2)绑定到视图模型上的命令似乎不正确,因为它严格来说是一个视图。
由于缩放严格来说只是 UI 视图,我认为实际代码应该放在代码隐藏中。
你们将如何实现这一点?
ps,我正在使用 .net\wpf 4.0,将 Cinch 用于 MVVM。