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 应用程序中之前或者将控件添加到动态菜单之前执行。有关更多信息,请参见功能区对象模型概述。
任务 |
成员 |
---|---|
在菜单上显示图像。 |
还可以重用出现在内置功能区控件中的图像。为此,请将 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 Runtime 实现。不应在代码中实现此接口。有关更多信息,请参见 Visual Studio Tools for Office Runtime 概述。 |
用法
本文档介绍面向 .NET Framework 4 和 .NET Framework 4.5 的 Office 项目中所用此类型的版本。在面向 .NET Framework 3.5 的项目中,此类型可能具有不同的成员,因此本文档为此类型提供的代码示例可能并不适用。有关面向 .NET Framework 3.5 的项目中的此类型的文档,请参见 Visual Studio 2008 文档中的以下参考部分:https://go.microsoft.com/fwlink/?LinkId=160658。
示例
下面的示例演示如何在运行时向现有菜单中添加子菜单并填充它。
有关在运行时更新控件,且使用语言集成查询 (LINQ) 从 AdventureWorks 示例数据库中获取数据的内容更丰富的示例,请参见演练:在运行时更新功能区上的控件。
若要运行此代码示例,必须先执行下列步骤:
将一个**“功能区(可视化设计器)”**项添加到 Office 项目中。
在自定义选项卡中添加一个组。
将一个菜单添加到该组。
将该菜单的**“(Name)”**属性设置为 CustomerMenu。
将该菜单的**“Label”**属性设置为 Customers。
将该菜单的**“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 命名空间