protected virtual ModifierKeys ConvertFrom(string value) { ModifierKeysConverter c = new ModifierKeysConverter(); return (ModifierKeys)c.ConvertFrom(value); }
public static HotKey Str2HotKey(string s) { try { if (s.IsNullOrEmpty()) return null; int offset = s.LastIndexOf("+", StringComparison.OrdinalIgnoreCase); if (offset <= 0) return null; string modifierStr = s.Substring(0, offset).Trim(); string keyStr = s.Substring(offset + 1).Trim(); KeyConverter kc = new KeyConverter(); ModifierKeysConverter mkc = new ModifierKeysConverter(); Key key = (Key) kc.ConvertFrom(keyStr.ToUpper()); ModifierKeys modifier = (ModifierKeys) mkc.ConvertFrom(modifierStr.ToUpper()); return new HotKey(key, modifier); } catch (NotSupportedException) { // converter exception return null; } catch (NullReferenceException) { return null; } }