应用程序菜单

应用程序菜单是实现 Windows 功能区框架的应用程序的main菜单。

简介

应用程序菜单由一个下拉按钮控件组成,该控件显示一个菜单,其中包含公开与整个项目(如整个文档、图片或电影)相关的功能的命令。 示例包括 “新建”、“ 打开”、“ 保存”和“ 退出 ”命令。

以下屏幕截图演示了应用程序菜单。

Windows 7 功能区画图的应用程序菜单和最近项目列表的屏幕截图。

应用程序菜单的组件

应用程序菜单是任何功能区应用程序中的必需元素。 应用程序菜单的入口点是一个独特的按钮,显示为 “选项卡” 行中的第一项,如以下屏幕截图所示。

注意

Windows 8 及更新版本:“应用程序菜单”按钮图像更改为标签: 文件。 建议不要使用“文件”作为自己的任何选项卡的标签。

 

Windows 7 写字板的应用程序菜单按钮的屏幕截图。

单击后,此按钮将显示以下屏幕截图中显示的丰富菜单, (Windows 7) 的写字板中的应用程序菜单。

Windows 7 的写字板应用程序菜单菜单的屏幕截图。

注意

单击“应用程序菜单”按钮时,不会影响选项卡集;相反,焦点进入菜单。

 

应用程序菜单包含两个窗格:由一个或多个 MenuGroup 元素表示的命令列表,以及由 ApplicationMenu.RecentItems 元素表示的“最近使用的项目”列表。

应用程序菜单菜单组

ApplicationMenu 元素必须至少包含一个公开应用程序级命令列表的 MenuGroup 子元素。 如果声明了多个 MenuGroup 元素,则会在组之间绘制一条分隔线,如以下屏幕截图所示。

应用程序菜单菜单组的屏幕截图。

下面是应用程序菜单的 MenuGroup 元素的约束列表:

MenuGroup 中使用 Button 时,Command.LabelTitle 的值将显示在菜单中,Command.TooltipTitleCommand.TooltipDescription 的值显示为工具提示,如以下屏幕截图所示。

应用程序菜单中按钮控件的屏幕截图。

在应用程序 菜单中使用下拉按钮拆分按钮下拉库拆分按钮库 时,菜单部分将显示为覆盖和隐藏“ 最近使用的项目 ”窗格的浮出控件。

对于 拆分按钮下拉按钮 控件, Command.LabelDescription 的值在浮出控件菜单中内联显示,以直观地帮助用户发现命令功能。 Command.LabelDescription 的显示值以编程方式在两行跨度上中断,并尝试将该值完全拟合在下面的“最近项目”窗格上。 如果 Command.LabelDescription 值不适合,浮出控件将展开以容纳 MenuGroup 中最长的 Command.Comment 值。

以下屏幕截图演示了 “拆分按钮” 浮出控件中的这些行为。

应用程序菜单中列表控件浮出控件的屏幕截图。

使用 下拉库拆分按钮库时,仅显示标签和图像。

调整应用程序菜单的大小

应用程序菜单的大小调整由功能区框架处理。 如果为 Command.LabelTitleCommand.LabelDescription 的值提供了很长的字符串,或者使用了长长的命令列表,则菜单将调整其大小以适应内容。 某些形式的调整包括扩展浮出控件或菜单窗格的大小,以及当需要滚动时添加平移查看器。

应用程序菜单属性

功能区框架定义应用程序菜单控件 的属性键 集合。

通常,通过调用 IUIFramework::InvalidateUICommand 方法使与控件关联的命令失效,从而在功能区 UI 中更新应用程序菜单属性。 处理无效事件,属性更新由 IUICommandHandler::UpdateProperty 回调方法定义。

不会执行 IUICommandHandler::UpdateProperty 回调方法,并且除非框架需要属性,否则不会查询应用程序以获取更新的属性值。 例如,当激活选项卡并在功能区 UI 中显示控件或显示工具提示时,框架需要 属性。

属性键 备注
UI_PKEY_TooltipDescription 只能通过失效进行更新。
UI_PKEY_TooltipTitle 只能通过失效进行更新。

 

Windows 功能区框架控件库

ApplicationMenu 标记元素