menuItem.InputGestureText 不显示快捷方式文本

本文关键字:快捷方式 文本 显示 InputGestureText menuItem | 更新日期: 2023-09-27 18:16:53

在我的应用程序中,我正在代码中创建菜单项。这是创建菜单项的代码

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这样的输入手势传递值,则在应用程序运行时,它不会在菜单项中显示快捷方式文本。 这段代码有什么问题。 谁能为此提供解决方案。

这就是我添加菜单项的方式

//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"

menuItem.InputGestureText 不显示快捷方式文本

仅当MenuItem不是Menu的直接子级(即不直接在Items集合内(时,InputGestureText才有效。如果想看InputGestureText,需要将MenuItem添加到另一个MenuItemItems集合中。为了说明我所说的内容,下面是 XAML 中的一个示例。

<Menu>
    <MenuItem Header="File" InputGestureText="Ctrl+Z">
        <MenuItem InputGestureText="Ctrl+C" Header="Open"></MenuItem>
    </MenuItem>
</Menu>

MenuItem(标头 ="文件"(的InputGestureText不可见,但MenuItem(标头="打开"(的可见。

这是我用来设置用户界面样式的库(材料设计库(的问题。我已经报告了这个问题,它已修复。