Skip to main content
Version: 0.10.x

Hotkeys

Various Controls that implement ICommandSource have a HotKey property that you can set or bind to. Pressing the hotkey will execute the command bound to the Control.

<Menu>
<MenuItem Header="_File">
<MenuItem x:Name="SaveMenuItem" Header="_Save" Command="{Binding SaveCommand}" HotKey="Ctrl+S"/>
</MenuItem>
</Menu>

You can also use the static methods of the HotKeyManager class to set and get hotkeys from code:

InitializeComponent();

var saveMenuItem = this.FindControl<Avalonia.Controls.MenuItem>("SaveMenuItem");

HotKeyManager.SetHotKey(saveMenuItem, new KeyGesture(Key.S, KeyModifiers.Control));

See the Locating Controls section for more information on finding named Controls with the FindControl method.

Keys and Modifiers

A Hotkey must have one Key and zero or more KeyModifiers. When setting a Hotkey in XAML using the HotKey property, the string will be parsed as a KeyGesture. Enum.Parse is used to parse the key and modifiers but synonyms like Ctrl instead of Control or Win instead of Meta can be used.

Reference

Source code