У меня есть производный класс пользовательского элемента управления и модель представления для движения с. Пользователь может сделать несколько действий с этим управлением, и я думаю, лучше реализовывать их, поскольку RoutedCommand возражает или производные объекты ICommand в модели представления, таким образом, ControlTemplates может связать с ними. Привязка команды к кнопке в одном ControlTemplate должна быть простой, но как я могу связать команду с, например, правую кнопку мыши в другом ControlTemplate? Вероятно, MouseGesture вовлечен, но мне нелегко соответствовать частям вместе.
Задействован MouseGesture
, но вам не нужно явно конструировать его. Вы можете использовать MouseBinding
, который сконструирует MouseGesture
для вас под капотом.
Вам нужен UIElement, чтобы прикрепить привязку к нему. Вот как это можно сделать с помощью отдельного декоратора.
<ControlTemplate ...>
<Decorator>
<Decorator.InputBindings>
<MouseBinding MouseAction="RightClick" Command="..." />
</Decorator.InputBindings>
... content here ...
</Decorator>
</ControlTemplate>
Скорее всего, ваш ControlTemplate использует панель, такую как DockPanel или Grid для компоновки, в этом случае вы можете прикрепить привязку к ней вместо добавления декоратора.