快捷键

实现 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 而不是 ControlWin 而不是 Meta 之类的同义词。

参考资料

源代码

Last updated