Search code examples
.netwpf

How can I convert 'System.Windows.Input.Key' to 'System.Windows.Forms.Keys'?


I'm developing application in WPF but some components are written using WinForms. I wan't these components to pull key gesture from WPF part and convert them to Keys enum (used in WinForms).

Is there a built in converter for that? (probably not) Do you know "easier than big switch case" method to do that?


Solution

  • Keys formsKey = ...;
    Key wpfKey = ...;
    wpfKey = KeyInterop.KeyFromVirtualKey((int)formsKey);
    formsKey = (Keys)KeyInterop.VirtualKeyFromKey(wpfKey);
    

    The KeyInterop class is the "key," plus the fact that the Windows Forms Keys enumeration has the same integer values as the Win 32 virtual key codes.