如何将'System.Windows.Input.Key'转换为'System.Windows.Forms.Keys'?

Ser*_*jev 39 .net wpf

我正在使用WPF开发应用程序,但有些组件是使用WinForms编写的.我不想这些组件从WPF部分拉出关键手势并将它们转换为Keys enum(在WinForms中使用).

是否有内置转换器?(可能不是)你知道"比大开关案例更容易"的方法吗?

Sam*_*ell 59

Keys formsKey = ...;
Key wpfKey = ...;
wpfKey = KeyInterop.KeyFromVirtualKey((int)formsKey);
formsKey = (Keys)KeyInterop.VirtualKeyFromKey(wpfKey);
Run Code Online (Sandbox Code Playgroud)

KeyInterop类是"重点",加上Windows窗体的事实Keys枚举具有相同的整数值的赢32个虚拟键码.

  • 修饰符(Alt、Control、Shift)怎么样? (3认同)
  • 谢谢.太棒了.但是我如何转换修饰符? (2认同)