在我的应用程序中,我在代码中创建菜单项。这是用于创建菜单项
的代码public MenuItem getMenuItem(string toolTip, string menuTitle, Uri menuIconUri, int? tagOnlyForHeaders, string shortCutKeyText ="")
{
MenuItem menuItem = new MenuItem
{
ToolTip = toolTip,
Header = menuTitle
};
if (menuIconUri != null)
{
menuItem.Icon = new Image
{
Source = new BitmapImage(menuIconUri)
};
}
if (tagOnlyForHeaders != null) {
menuItem.Tag = tagOnlyForHeaders;
}
if (shortCutKeyText != "") {
menuItem.InputGestureText = shortCutKeyText;
}
return menuItem;
}
但如果我为ctrl+n
之类的输入Gesture传递值,则在应用程序运行时它不会在菜单项中显示快捷方式文本。这段代码有什么问题。任何人都可以为此解决问题。
这是我添加菜单项的方式
//Top level Op menu
var opMenuItem = utils.getMenuItem("OP", MenuName, null, 0);
//op registration
var RegistrationMenuItem = utils.getMenuItem("New Registration", "New Registration",
new Uri(baseIconUri + "newRegistration.png"), null,"ctrl+n ");
opMenuItem.Items.Add(opRegistrationMenuItem);
return opMenuItem;
并将其添加到主菜单
mainMenu.Items.Add(menuItem); // in this case the "opMenuItem"
答案 0 :(得分:2)
InputGestureText
仅在MenuItem
不 Menu
的直接子项时才有效(即不直接位于Items
集合内) 。如果您想查看InputGestureText
,则需要将MenuItem
添加到另一个Items
的{{1}}集合中。为了说明我所说的,这里是XAML中的一个例子。
MenuItem
<Menu>
<MenuItem Header="File" InputGestureText="Ctrl+Z">
<MenuItem InputGestureText="Ctrl+C" Header="Open"></MenuItem>
</MenuItem>
</Menu>
(页眉=&#34;文件)的InputGestureText
不可见,但MenuItem
(页眉=&#34;打开&#34;)的MenuItem
是可见的
答案 1 :(得分:0)
这是我用来设置用户界面样式的库(Material design library)的问题。我已经报告了这个问题并且已修复。