1

我可以用一键热键制作 WPF 应用程序吗?到处都是使用修饰符制作热键的教程,例如:[Alt]+[X]。例如,我需要制作全局热键 [F9]。如何在 C# .NET 4.5 中做到这一点?

4

1 回答 1

3

是的你可以。当你创建你的命令对象时,你可以传递的东西之一是一个,它包含一个从类InputGestureCollection中继承下来的对象列表。InputGesture这些类之一是KeyGesture类,它定义了用于激活命令的特定键序列。

KeyGesture类的属性之一Key是 typeKey的属性。这是键值的枚举。你想要的是Key.F9.

要创建命令,您需要执行以下操作:

InputGestureCollection myCommandGestures = new InputGesturecollection();
myCommandGestures.Add( new KeyGesture( Key.F9 );
RoutedCommand MyCommand = new RoutedCommand( "MyCommand", typeof( MyViewModelClass ), myCommandGestures );

编辑

以上仅适用于 WPF。如果你想要一个全局热键,你必须调用 Win32RegisterHotKey函数。 Visual Studio 论坛上此问题的答案包含指向如何执行此操作的示例的链接。

我不确定您是否必须同时执行这两项操作,或者只是调用该RegisterHotKey函数来注册您的热键。

于 2014-04-18T20:51:20.310 回答