diff --git a/src/MahApps.Metro.Samples/MahApps.Metro.Demo/MahApps.Metro.Demo.Shared/ExampleViews/TextExamples.xaml b/src/MahApps.Metro.Samples/MahApps.Metro.Demo/MahApps.Metro.Demo.Shared/ExampleViews/TextExamples.xaml
index 7b2896c723..bc293de113 100644
--- a/src/MahApps.Metro.Samples/MahApps.Metro.Demo/MahApps.Metro.Demo.Shared/ExampleViews/TextExamples.xaml
+++ b/src/MahApps.Metro.Samples/MahApps.Metro.Demo/MahApps.Metro.Demo.Shared/ExampleViews/TextExamples.xaml
@@ -346,7 +346,6 @@
Margin="{StaticResource ColumnMargin}">
diff --git a/src/MahApps.Metro/MahApps.Metro.Shared/Controls/HotKeyBox.cs b/src/MahApps.Metro/MahApps.Metro.Shared/Controls/HotKeyBox.cs
index 6cf41993d8..6dd38de96e 100644
--- a/src/MahApps.Metro/MahApps.Metro.Shared/Controls/HotKeyBox.cs
+++ b/src/MahApps.Metro/MahApps.Metro.Shared/Controls/HotKeyBox.cs
@@ -201,7 +201,7 @@ public class HotKey : IEquatable
private readonly Key _key;
private readonly ModifierKeys _modifierKeys;
- public HotKey(Key key, ModifierKeys modifierKeys)
+ public HotKey(Key key, ModifierKeys modifierKeys = ModifierKeys.None)
{
_key = key;
_modifierKeys = modifierKeys;
@@ -255,12 +255,23 @@ public override string ToString()
}
if ((_modifierKeys & ModifierKeys.Windows) == ModifierKeys.Windows)
{
- sb.Append("WINDOWS+");
+ sb.Append("Windows+");
}
- sb.Append(GetLocalizedKeyStringUnsafe(KeyInterop.VirtualKeyFromKey(_key)).ToUpper());
+ sb.Append(GetLocalizedKeyString(_key));
return sb.ToString();
}
+ private static string GetLocalizedKeyString(Key key)
+ {
+ if (key >= Key.BrowserBack && key <= Key.LaunchApplication2)
+ {
+ return key.ToString();
+ }
+
+ var vkey = KeyInterop.VirtualKeyFromKey(key);
+ return GetLocalizedKeyStringUnsafe(vkey) ?? key.ToString();
+ }
+
private static string GetLocalizedKeyStringUnsafe(int key)
{
// strip any modifier keys
@@ -281,8 +292,8 @@ private static string GetLocalizedKeyStringUnsafe(int key)
scanCode |= 0x1000000;
}
- UnsafeNativeMethods.GetKeyNameText((int)scanCode, sb, 256);
- return sb.ToString();
+ var resultLength = UnsafeNativeMethods.GetKeyNameText((int)scanCode, sb, 256);
+ return resultLength > 0 ? sb.ToString() : null;
}
}
diff --git a/src/MahApps.Metro/MahApps.Metro/Themes/HotKeyBox.xaml b/src/MahApps.Metro/MahApps.Metro/Themes/HotKeyBox.xaml
index c24e6c1b3d..f73b699889 100644
--- a/src/MahApps.Metro/MahApps.Metro/Themes/HotKeyBox.xaml
+++ b/src/MahApps.Metro/MahApps.Metro/Themes/HotKeyBox.xaml
@@ -10,6 +10,7 @@
+