OK, ho capito come ottenere gli elementi della griglia della UI per lo zoom, utilizzando LayoutTransform e ScaleTransform. Quello che non capisco è come posso convincere la mia vista a rispondere a CTRL + MouseWheelUp \ Down per farlo e come adattare il codice al pattern MVVM.Mouse Accoppiamento della rotellina del mouse per ingrandire WPF e MVVM
La mia prima idea era quella di memorizzare lo ZoomFactor come proprietà e associarlo a un comando per regolarlo.
stavo guardando qualcosa di simile:
<UserControl.InputBindings>
<MouseBinding Command="{Binding ZoomGrid}" Gesture="Control+WheelClick"/>
</UserControl.InputBindings>
ma vedo 2 problemi:
1) Io non credo che ci sia un modo per dire se la ruota è stata spostata verso l'alto o verso il basso, né posso vedere come determinare di quanto. Ho visto MouseWheelEventArgs.Delta, ma non ho idea di come ottenerlo.
2) Il collegamento a un comando sul viewmodel non sembra corretto, in quanto è strettamente un oggetto View.
Poiché lo zoom è esclusivamente UI View only, sto pensando che il codice effettivo debba essere inserito nel code-behind.
Come vorreste implementarlo?
p.s., Sto usando .net \ wpf 4.0 utilizzando Cinch per MVVM.
Trovato questo sul Web, può essere che può aiutare ... http://social.technet.microsoft.com/wiki/contents/articles/18199.event-handling-in-an-mvvm-wpf-application .aspx – dunamis