RibbonMenu 接口

表示功能区选项卡上的菜单或 Microsoft Office 菜单上的菜单。

命名空间:  Microsoft.Office.Tools.Ribbon
程序集:  Microsoft.Office.Tools.Common(在 Microsoft.Office.Tools.Common.dll 中)

语法

声明
<GuidAttribute("59dc7f42-aca2-484a-9622-1ee34a6cfd7d")> _
Public Interface RibbonMenu _
    Inherits RibbonControl, RibbonComponent, IComponent, IDisposable
[GuidAttribute("59dc7f42-aca2-484a-9622-1ee34a6cfd7d")]
public interface RibbonMenu : RibbonControl, 
    RibbonComponent, IComponent, IDisposable

RibbonMenu 类型公开以下成员。

属性

  名称 说明
公共属性 ControlSize 获取或设置菜单的大小。
公共属性 Description 获取或设置显示在当前菜单上的文本。
公共属性 Dynamic 获取或设置一个值,该值指示菜单是否可以在运行时修改。
公共属性 Enabled 获取或设置一个值,该值指示是否启用此 RibbonControl。 (继承自 RibbonControl。)
公共属性 Id 获取一个字符串,Microsoft Office 使用它来标识此 RibbonControl 对象。 (继承自 RibbonControl。)
公共属性 Image 获取或设置显示在菜单上的图像。
公共属性 ImageName 获取或设置一个名称,可在 LoadImage 事件处理程序中使用该名称标识菜单的图像。
公共属性 Items 获取菜单上的控件的集合。
公共属性 ItemSize 获取或设置菜单上的控件的大小。
公共属性 KeyTip 获取或设置菜单的键盘访问键。
公共属性 Label 获取或设置菜单所显示的文本。
公共属性 Name 获取或设置此 RibbonComponent 的名称。 (继承自 RibbonComponent。)
公共属性 OfficeImageId 获取或设置要在菜单上显示的图像(如果要使用内置 Microsoft Office 图标)。
公共属性 Parent 获取一个表示此 RibbonComponent 的父级的 RibbonComponent。 (继承自 RibbonComponent。)
公共属性 Position 获取或设置菜单的位置(如果该菜单在 Microsoft Office 菜单上)。
公共属性 Ribbon 获取包含控件层次结构的顶级 Ribbon 对象。 (继承自 RibbonComponent。)
公共属性 RibbonUI 基础结构。获取 Microsoft Office 应用程序提供给功能区扩展性代码的 IRibbonUI 实例。 (继承自 RibbonComponent。)
公共属性 ScreenTip 获取或设置当用户将指针移到菜单上时显示的提示文本。
公共属性 ShowImage 获取或设置一个值,该值指示与菜单关联的图像是否可见。
公共属性 ShowLabel 获取或设置一个值,该值指示此菜单的标签是否可见。
公共属性 Site 获取或设置与 IComponent 关联的 ISite。 (继承自 IComponent。)
公共属性 SuperTip 获取或设置当用户将指针移到菜单上时显示的多行提示文本。
公共属性 Tag 获取或设置与此 RibbonComponent 关联的特定于应用程序的数据。 (继承自 RibbonComponent。)
公共属性 Title 获取或设置当用户展开添加到 Microsoft Office 菜单的菜单时显示的标题。
公共属性 Visible 获取或设置一个值,该值指示此 RibbonControl 是否可见。 (继承自 RibbonControl。)

页首

方法

  名称 说明
公共方法 Dispose 执行与释放或重置非托管资源相关的应用程序定义的任务。 (继承自 IDisposable。)
公共方法 PerformDynamicLayout 如果 RibbonComponent 有一个动态父级(如动态菜单)且布局未挂起,则调用父控件的 Microsoft.Office.Core.IRibbonUI.InvalidateControl 方法。 (继承自 RibbonComponent。)
公共方法 PerformLayout 如果 RibbonComponent 有父级,并且布局未挂起,则调用 Microsoft.Office.Core.IRibbonUI.InvalidateControl。 (继承自 RibbonComponent。)
公共方法 ResumeLayout() 取消 SuspendLayout 方法的效果。 (继承自 RibbonComponent。)
公共方法 ResumeLayout(Boolean) 取消 SuspendLayout 方法的效果。 (继承自 RibbonComponent。)
公共方法 SuspendLayout 阻止 Microsoft Office 应用程序刷新功能区上的控件的状态。 (继承自 RibbonComponent。)

页首

事件

  名称 说明
公共事件 Disposed 表示处理组件的 Disposed 事件的方法。 (继承自 IComponent。)
公共事件 ItemsLoading 当控件或嵌套菜单在运行时加载到当前菜单中的时候发生。

页首

备注

在将**“菜单”控件从“工具箱”“Office 功能区控件”**选项卡拖入功能区设计器时,Visual Studio 将创建 RibbonMenu 对象。

在运行时,可以使用 RibbonFactory 对象的 CreateRibbonMenu 方法创建 RibbonMenu。

有两种方法可访问 RibbonFactory 对象:

  • 使用功能区类的 Factory 属性。 请通过功能区类中的代码使用此方法。

  • 使用 Globals.Factory.GetRibbonFactory 方法。 请通过功能区类之外的代码使用此方法。

常规任务

下表列出了对常规任务有用的成员。 所有这些任务都可以在设计时执行。 其中一些任务只能在运行时执行,并且只能在将功能区加载到 Office 应用程序中之前或者将控件添加到动态菜单之前执行。 有关更多信息,请参见 功能区对象模型概述

任务

成员

在菜单上显示图像。

使用 ImageImageName 属性。

还可以重用出现在内置功能区控件中的图像。 为此,请将 OfficeImageId 设置为要显示为菜单图标的内置 Microsoft Office 图像的 ID。

更改菜单的大小。

ControlSize 属性设置为您需要的值。 例如,对于大菜单,将其设置为 Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge

更改菜单项的大小。

ItemSize 属性设置为您需要的值。 例如,若要显示较大的项,请将其设置为 Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge

支持在运行时更改菜单(例如,支持控件在运行时添加到菜单)。

Dynamic 属性设置为 true。

访问菜单中的控件,将控件添加到菜单,或者从菜单中移除控件。

使用 Items 属性。

将菜单添加到 Microsoft Office 菜单、组或其他可以包含菜单的控件。

将 RibbonMenu 添加到 Microsoft Office 菜单、组或控件的 Items 属性。

提示

此接口由 Visual Studio Tools for Office 运行时实现。不应在代码中实现此接口。有关更多信息,请参见 Visual Studio Tools for Office Runtime 概述

用法

本文档介绍面向 .NET Framework 4 的 Office 项目中所用此类型的版本。在面向 .NET Framework 3.5 的项目中,此类型可能具有不同的成员,因此本文档为此类型提供的代码示例可能并不适用。有关在面向 .NET Framework 3.5 的项目中使用此类型的文档,请参见 Visual Studio 2008 文档中以下参考部分:https://go.microsoft.com/fwlink/?LinkId=160658

示例

下面的示例演示如何在运行时向现有菜单中添加子菜单并填充它。

有关在运行时更新控件,且使用语言集成查询 (LINQ) 从 AdventureWorks 示例数据库中获取数据的内容更丰富的示例,请参见演练:在运行时更新功能区上的控件

若要运行此代码示例,必须先执行下列步骤:

  1. 将一个**“功能区(可视化设计器)”**项添加到 Office 项目中。

  2. 在自定义选项卡中添加一个组。

  3. 将一个菜单添加到该组。

  4. 将该菜单的**“(Name)”**属性设置为 CustomerMenu。

  5. 将该菜单的**“Label”**属性设置为 Customers。

  6. 将该菜单的**“Dynamic”**属性设置为 true。

    这样,在功能区加载到 Office 应用程序中之后,就可在运行时添加和移除菜单上的控件。

Private Sub PopulateCustomerMenu()
    ' Add two sub-menus to EmployeeMenu and populate each sub-menu
    ' First sub-menu
    Dim subMenu1 As RibbonMenu = Me.Factory.CreateRibbonMenu()
    subMenu1.Dynamic = True
    subMenu1.Label = "A - M"
    subMenu1.Items.Add(Me.Factory.CreateRibbonToggleButton())
    CType(subMenu1.Items.Last(), RibbonToggleButton).Label = "Hall, Don"
    subMenu1.Items.Add(Me.Factory.CreateRibbonToggleButton())
    CType(subMenu1.Items.Last(), RibbonToggleButton).Label = "Valdez, Rachel"
    CustomerMenu.Items.Add(subMenu1)

    ' Second sub-menu
    Dim subMenu2 As RibbonMenu = Me.Factory.CreateRibbonMenu()
    subMenu2.Dynamic = True
    subMenu2.Label = "N - Z"
    subMenu2.Items.Add(Me.Factory.CreateRibbonToggleButton())
    CType(subMenu2.Items.Last(), RibbonToggleButton).Label = "Robinson, Alex"
    CustomerMenu.Items.Add(subMenu2)

End Sub
private void PopulateCustomerMenu()
{
    // Add two sub-menus to EmployeeMenu and populate each sub-menu
    // First sub-menu
    RibbonMenu subMenu1 = this.Factory.CreateRibbonMenu();
    subMenu1.Dynamic = true;
    subMenu1.Label = "A - M";
    subMenu1.Items.Add(this.Factory.CreateRibbonToggleButton());
    ((RibbonToggleButton)subMenu1.Items.Last()).Label = "Hall, Don";
    subMenu1.Items.Add(this.Factory.CreateRibbonToggleButton());
    ((RibbonToggleButton)subMenu1.Items.Last()).Label = "Valdez, Rachel";
    CustomerMenu.Items.Add(subMenu1);

    // Second sub-menu
    RibbonMenu subMenu2 = this.Factory.CreateRibbonMenu();
    subMenu2.Dynamic = true;
    subMenu2.Label = "N - Z";
    subMenu2.Items.Add(this.Factory.CreateRibbonToggleButton());
    ((RibbonToggleButton)subMenu2.Items.Last()).Label = "Robinson, Alex";
    CustomerMenu.Items.Add(subMenu2);
}

请参见

参考

Microsoft.Office.Tools.Ribbon 命名空间

其他资源

功能区概述

功能区设计器

功能区对象模型概述

如何:开始自定义功能区