#1,084 – A KeyBinding Binds a Command to a Key
June 2, 2014 4 Comments
A user interface element has a CommandBindings collection containing command binding objects that indicate which commands are supported for the element and the code that the command is bound to.
User interface elements also have an InputBindings collection that contains KeyBinding and MouseBinding instances, each of which maps keyboard or mouse input to a command that is also present in the CommandBindings collection.
In the code below, we wire up the Open command for both key (Ctrl+O) and mouse (Ctrl+Left Click) input.
public MainWindow() { InitializeComponent(); this.DataContext = this; this.CommandBindings.Add(new CommandBinding(ApplicationCommands.Open, (sender, e) => { MessageBox.Show("Executing the Open command"); }, (sender, e) => { e.CanExecute = CanOpenIsChecked; })); // Ctrl+O = Open this.InputBindings.Add(new KeyBinding(ApplicationCommands.Open, new KeyGesture(Key.O, ModifierKeys.Control))); // Ctrl+Left Mouse Click = Open this.InputBindings.Add(new MouseBinding(ApplicationCommands.Open, new MouseGesture(MouseAction.LeftClick, ModifierKeys.Control))); }
We can now use either form of input to execute the Open command.
Pingback: Dew Drop – June 2, 2014 (#1788) | Morning Dew
Pingback: #1,086 – Defining a Key Binding in XAML | 2,000 Things You Should Know About WPF
Pingback: #1,087 – Associating a Key Binding with Multiple Modifier Keys | 2,000 Things You Should Know About WPF
Reblogged this on Dinesh Ram Kali..