应用程序菜单

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

介绍

应用程序菜单由一个下拉菜单控件组成,该控件显示一个菜单,其中包含公开与完整项目相关的功能的命令,例如整个文档、图片或电影。 示例包括 打开保存Exit 命令。

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

应用程序菜单和 Windows 7 功能区油漆的最新项列表的屏幕截图。

应用程序菜单的组件

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

注意

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

 

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

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

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

注意

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

 

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

应用程序菜单菜单组

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

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

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

MenuGroup中使用 按钮 时,Command.LabelTitle 的值会显示在菜单中,Command.TooltipTitle 的值和 Command.TooltipDescription 的值显示为工具提示,如以下屏幕截图所示。

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

Drop-Down 按钮拆分按钮Drop-Down 库拆分按钮库 在应用程序菜单中使用时,菜单部分将显示为浮出控件,用于覆盖和隐藏 最近项 窗格。

对于 拆分按钮Drop-Down 按钮 控件,浮出控件菜单中会显示 Command.LabelDescription 的值,以直观地帮助用户发现命令功能。 Command.LabelDescription 的显示值在双行跨度上以编程方式中断,并且尝试将该值恰好放在下方的“最近 项” 窗格中。 如果 Command.LabelDescription 值不适合,浮出控件将展开以适应 MenuGroup中最长的 Command.Comment 值。

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

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

使用 Drop-Down 库拆分按钮库,仅显示标签和图像。

调整应用程序菜单的大小

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

应用程序菜单属性

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

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

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

属性键 笔记
UI_PKEY_TooltipDescription 只能通过无效更新。
UI_PKEY_TooltipTitle 只能通过无效更新。

 

Windows 功能区框架控件库

ApplicationMenu 标记元素