快捷键
实现 ICommandSource
接口的各种控件都有一个 HotKey
属性,您可以将其设置或绑定。按下快捷键将会执行与控件绑定的命令。
<Menu>
<MenuItem Header="_文件">
<MenuItem x:Name="SaveMenuItem" Header="_保存" Command="{Binding SaveCommand}" HotKey="Ctrl+S"/>
</MenuItem>
</Menu>
您也可以使用 HotKeyManager
类的静态方法从代码中设置和获取快捷键:
InitializeComponent();
var saveMenuItem = this.FindControl<Avalonia.Controls.MenuItem>("SaveMenuItem");
HotKeyManager.SetHotKey(saveMenuItem, new KeyGesture(Key.S, KeyModifiers.Control));
有关使用 FindControl 方法查找命名控件的更多信息,请参见 查找控件 部分。
键和修饰符
一个快捷键必须有一个 Key,以及零个或多个 KeyModifiers。在使用 HotKey
属性在 XAML 中设置快捷键时,字符串将被解析为 KeyGesture。解析键和修饰符使用 Enum.Parse,但是可以使用诸如 Ctrl
而不是 Control
或 Win
而不是 Meta
之类的同义词。
参考资料
源代码
Last updated