在 RibbonControl 内部的 Ribbon 页面 都属于特定的页面类别——默认的或自定义的类别。 页面的类别会影响如何在屏幕上呈现页面。
属于默认类别的页面被作为 Ribbon 应用程序的主要页面,而属于自定义类别的页面应该提供特定的上下文信息。 使用自定义类别来实现上下文页面,就像 Microsoft Office 2007 的用户界面那样。 本主题提供了更多的相关信息。
默认的页面类别和未指派的页面
RibbonControl 始终包含一个名称为 default 的类别,不能删除或重命名它。 与自定义类别不同,在下面小节中描述的默认类别的标题决不会被显示在屏幕上。 属于默认类别的页面可以被视为主要的、上下文无关的标签页。 尽管在需要时可以临时隐藏这些页面,但是在多数情况下设计应用程序时,考虑这些页面在应用程序运行期间是固定可视的。
默认类别的页面被称为 unassigned(未指派的),因为没有把它们指派到任何自定义页面类别。 下面的插图展示了一个 RibbonControl,它有两个未指派的页面 (Home 和 Gallery Page):
可以通过 RibbonControl.Pages 集合访问未指派的页面。 如果某个页面没有被添加到此集合中,则它自动与默认类别相关联。 也可以通过 RibbonControl.DefaultPageCategory 属性访问未指派的页面。 该属性返回的对象提供了包含未指派页面的 RibbonPageCategory.Pages 集合。
要获取某个页面的类别,可以读取 RibbonPage.Category 属性。 对于未指派的页面,该属性返回与 RibbonControl.DefaultPageCategory 属性值相同的对象。
自定义页面类别和上下文标签页
RibbonControl 允许实现与 MS Office 2007 用户界面相像的上下文标签页面。 这些页面被设计用于显示上下文特定命令,因此不需要始终显示它们,而是仅当选中某个特定对象、或最终用户执行某一操作时才显示。
要实现与 MS Office 2007 用户界面相像的上下文标签页面,则必须创建 Ribbon 页面并且把它们添加到一个自定义页面类别中, 与默认的页面类别不同,自定义类别的标题是可视的并且着以特殊的颜色。 下面的插图展示了一个 RibbonControl,它有两个可视的上下文标签页面 (Format 和 Clipboard),这两个页面被组合在一个自定义的 Selection 页面类别中。
当上下文标签页面变得可视时,它们被显示在未指派标签页面的右侧 (也可以随意锚定 RibbonControl 的右边缘)。 在它们的标题上面,相应的类别标题被显示以提供此类别的名称。 使用 RibbonControl,可以在同一时刻显示多个页面类别,并且每个类别都可以包含一至多个上下文标签页。
创建上下文标签页
要在 RibbonControl 中创建上下文标签页,首先需要创建一个自定义页面类别 (RibbonPageCategory 对象),并把它添加到 RibbonControl.PageCategories 集合中。 然后创建一个或多个呈现上下文标签页的 Ribbon 页面 (RibbonPage 对象),并把它们添加到所建类别的 RibbonPageCategory.Pages 集合中。 可以在设计时刻创建页面类别和页面 (直接在窗体上或通过 设计器 ),也可以在运行时刻创建。 请参阅 如何: 创建上下文标签页,来获得关于在代码中创建上下文标签页的示例。
应该根据您的需要来动态显示有上下文页面的自定义页面类别 (例如,当选中某个特定对象时)。 因此,它们的可视性状态必须人工控制。 要隐藏和显示页面类别和上下文页面,可以使用 RibbonPageCategory.Visible 和 RibbonPage.Visible 属性。 典型地,仅需要改变一个类别的可视性,因为这会自动影响属于该类别的所有页面的可视性状态。
页面类别和上下文标签页的外观
在默认情况下,自定义类别及其页面的绘制与未指派页面略有不同。 此外,可以明确指定自定义类别及页面的背景色,让该外观差异更加明显。 每个类别都提供了 RibbonPageCategory.Color 属性来指定绘制类别及其页面的颜色。 当指派该颜色时,将与控件的背景色相混合。
下面的插图展示了一个 RibbonControl,它有两个以不同颜色绘制的自定义页面:
要修改页面类别标头的前景色和字体设置,可以使用 RibbonAppearances.PageCategory 属性。
页面类别的标题被显示在子上下文标签页的上方。 要设置页面类别的标题,可以使用 RibbonPageCategory.Text 属性。
在默认情况下,自定义类别被显示在未指派 Ribbon 页面的右侧。 RibbonControl.PageCategoryAlignment 属性允许把它们锚定到 RibbonControl 的右边缘,如下图所示:
要隐藏 RibbonForm 标题栏中的页面类别的名称,可以使用 RibbonControl.ShowCategoryInCaption 属性。