Есть еще один способ добавления жестов, о котором стоит упомянуть. Ранее обсуждалось, что все пользовательские элементы WPF наследуют от UIElement или ContentElement, а эти классы, в свою очередь, имеют в качестве свойства коллекцию InputBindings типа InputBindingCollection. Коллекция может быть заполнена классами KeyBinding или MouseBinding, каждый из которых связывает жест клавиатуры (представленный объектом KeyGesture) или мыши (представленный объектом MouseGesture) с командой. Оба класса наследуют тип InputBinding.
Например, привязать жесты с командой к объекту окна можно одним из следующих способов
<Window x:Class="Tmp.window" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Height="300" Width="300"> <Window.InputBindings> <KeyBinding Key="F" Modifiers="Control" Command="ApplicationCommands.Find" /> <MouseBinding MouseAction="Control+LeftClick" Command="ApplicationCommands.Find" /> <KeyBinding Key="Q" Modifiers="Control" Command="ApplicationCommands.Find" /> <MouseBinding Gesture="Alt+LeftClick" Command="ApplicationCommands.Find" /> </Window.InputBindings> <Grid> <Button Command="ApplicationCommands.Find" Height="23" Width="75" > Поиск </Button> </Grid></Window>В классе MouseBinding свойство Modifiers доступно только для чтения, поэтому жест для мыши нужно вводить в свойство MouseAction сразу целиком, как показано в только что приведенном примере.
|
|