65.9K
CodeProject 正在变化。 阅读更多。
Home

WinForms Windows Ribbon,第 5 部分 - 带有 SplitButton 和 DropButton 的应用程序菜单

starIconstarIconstarIconstarIconstarIcon

5.00/5 (13投票s)

2010年3月2日

Ms-PL

2分钟阅读

viewsIcon

34957

downloadIcon

3267

在本文中,我将介绍如何在 WinForms 应用程序中使用带有 Ribbon 分裂按钮和 Ribbon 下拉按钮控件的 Ribbon 应用程序菜单。

这系列 CodeProject 文章基于我首先在我的 博客上发表的一系列帖子。

今天我将向您展示如何在 WinForms 应用程序中使用以下 Ribbon 功能

  • 菜单组
  • 应用程序菜单中的分割按钮
  • 应用程序菜单中的下拉按钮

这篇文章的结果如下所示

image

SplitButton 与 DropDownButton

这两者之间到底有什么区别?

DropDownButton 不是一个按钮,这意味着单击它不会执行任何操作。将鼠标悬停在它上面会打开一个按钮列表。
另一方面,SplitButton 本身就是一个按钮,您可以对其做出响应。将鼠标悬停在它上面也会打开一个按钮列表。

DropDownButton 的常见用途是,当您想要公开一组没有明显默认选项的项目时。例如,考虑 Paint 中的“Rotate”功能。您有 Rotate90Rotate180Rotate270,但其中没有一个是明显的默认选项。

SplitButton 的常见用途是,当您想要公开一组具有明显默认选项的项目时。例如,“另存为”按钮,其中有一个默认的保存格式。

在 Ribbon 应用程序菜单中使用 SplitButton 和 DropDownButton

命令标记与之前相同,只需定义一些稍后在视图标记中列出的命令即可。例如
<Command Name="cmdButtonDropA"
    Id="1008"
    LabelTitle="Drop A"
    LabelDescription="Sub button A"
    TooltipTitle="Drop A">
  <Command.LargeImages>
    <Image>Res/DropA32.bmp</Image>
  </Command.LargeImages>
</Command>

<Command Name="cmdButtonDropB"
    Id="1009"
    LabelTitle="Drop B"
    LabelDescription="Sub button B"
    TooltipTitle="Drop B">
  <Command.LargeImages>
    <Image>Res/DropB32.bmp</Image>
  </Command.LargeImages>
</Command>

相关的视图标记定义如下

<DropDownButton CommandName='cmdDropDownButton'>
  <MenuGroup Class='MajorItems'>
    <Button CommandName='cmdButtonDropA' />
    <Button CommandName='cmdButtonDropB' />
    <Button CommandName='cmdButtonDropC' />
  </MenuGroup>
</DropDownButton>

<SplitButton>
  <SplitButton.ButtonItem>
    <Button CommandName='cmdButtonDropB' />
  </SplitButton.ButtonItem>
  <SplitButton.MenuGroups>
    <MenuGroup Class='MajorItems'>
      <Button CommandName='cmdButtonDropA' />
      <Button CommandName='cmdButtonDropB' />
      <Button CommandName='cmdButtonDropC' />
    </MenuGroup>
  </SplitButton.MenuGroups>
</SplitButton>

后台代码部分也与上一篇文章中的相同,只需使用相应的 ID 处理 IUICommandHandler.Execute
更新 (2009.11.18):只需注册到相应按钮的 OnExecute 事件即可。

MenuGroup

菜单组是应用程序菜单中菜单项的集合。它提供的最有用的功能是为一组项目提供标题,例如最后一个图像中的“文件菜单”。

如果您只需要菜单项之间的简单分隔符,您可以使用未附加到任何命令的 MenuGroup

<MenuGroup>
  …
</MenuGroup>

与往常一样,最新版本的“Windows Ribbon for WinForms”以及示例应用程序可以在 这里 找到。

暂时就到这里,
Arik Poznanski。

© . All rights reserved.