Browse Source

TranslateMenuItemToWpf sets also shortcut on WPF MenuItem, so that menus show shortcuts.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@6336 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Martin Koníček 16 years ago
parent
commit
ac810d59bc
  1. 2
      src/Main/Base/Project/Src/Util/ExtensionMethods.cs
  2. 13
      src/Main/ICSharpCode.Core.Presentation/Menu/MenuService.cs

2
src/Main/Base/Project/Src/Util/ExtensionMethods.cs

@ -421,6 +421,8 @@ namespace ICSharpCode.SharpDevelop
{ {
var r = new System.Windows.Controls.MenuItem(); var r = new System.Windows.Controls.MenuItem();
r.Header = MenuService.ConvertLabel(item.Text); r.Header = MenuService.ConvertLabel(item.Text);
r.InputGestureText = MenuService.ConvertKeys(item.ShortcutKeys);
//r.InputGestureText = new KeyGesture(Key.F6).GetDisplayStringForCulture(Thread.CurrentThread.CurrentUICulture);
if (item.ImageIndex >= 0) if (item.ImageIndex >= 0)
r.Icon = ClassBrowserIconService.GetImageByIndex(item.ImageIndex).CreateImage(); r.Icon = ClassBrowserIconService.GetImageByIndex(item.ImageIndex).CreateImage();
if (item.DropDownItems.Count > 0) { if (item.DropDownItems.Count > 0) {

13
src/Main/ICSharpCode.Core.Presentation/Menu/MenuService.cs

@ -14,6 +14,8 @@ using System.Windows.Controls;
using System.Windows.Controls.Primitives; using System.Windows.Controls.Primitives;
using System.Windows.Input; using System.Windows.Input;
using WinForms = System.Windows.Forms;
namespace ICSharpCode.Core.Presentation namespace ICSharpCode.Core.Presentation
{ {
/// <summary> /// <summary>
@ -263,5 +265,16 @@ namespace ICSharpCode.Core.Presentation
{ {
return (KeyGesture)new KeyGestureConverter().ConvertFromInvariantString(text.Replace(',', '+').Replace('|', '+')); return (KeyGesture)new KeyGestureConverter().ConvertFromInvariantString(text.Replace(',', '+').Replace('|', '+'));
} }
static WinForms.KeysConverter shortcutKeysConverter = new WinForms.KeysConverter();
/// <summary>
/// Converts Windows-Forms Keys enum to WPF string representation, suitable e.g. for MenuItem.InputGestureText.
/// </summary>
public static string ConvertKeys(System.Windows.Forms.Keys shortcutKeys)
{
if (shortcutKeys == WinForms.Keys.None || shortcutKeys == WinForms.Keys.NoName || shortcutKeys == WinForms.Keys.IMENonconvert)
return string.Empty;
return shortcutKeysConverter.ConvertToString(shortcutKeys);
}
} }
} }

Loading…
Cancel
Save