Windows Ribbon for WinForms,第 20 部分 – 快速访问工具栏





5.00/5 (14投票s)
在本文中,我将介绍如何使用 Ribbon 快速访问工具栏。
这系列 CodeProject 文章基于我首先在我的 博客上发表的一系列帖子。
Windows Ribbon for WinForms 库现在支持使用 Ribbon 快速访问工具栏。这篇文章的结果是另一个示例“17-QuickAccessToolbar”,可以在项目网站上找到。
什么是快速访问工具栏(QAT)?
快速访问工具栏位于窗口标题的左侧。用户可以将常用的 Ribbon 命令保存在那里,以便轻松访问。用户可以通过右键单击 Ribbon 按钮(或切换按钮或复选框),然后选择“添加到快速访问工具栏”来将该按钮添加到 QAT。
应用程序开发人员可以指定一组“默认按钮”(在上图中:新建、打开和保存)。这是使用 Ribbon 标记完成的。此外,应用程序开发人员可以使用代码动态添加命令。
Ribbon 的另一个功能是能够保存和加载命令列表。使用此功能在应用程序会话之间保存和加载设置,可以为用户提供一致的 UI 体验。
更多详细信息可以在 MSDN 上的 快速访问工具栏 中找到。
使用 QuickAccessToolbar - Ribbon 标记
以下是使用 QuickAccessToolbar
的 views 部分的示例
<Application.Views>
<Ribbon>
<Ribbon.QuickAccessToolbar>
<QuickAccessToolbar CommandName='cmdQAT' CustomizeCommandName='cmdCustomizeQAT'>
<QuickAccessToolbar.ApplicationDefaults>
<Button CommandName="cmdButtonNew" ApplicationDefaults.IsChecked="true" />
<Button CommandName="cmdButtonOpen" ApplicationDefaults.IsChecked="false" />
<Button CommandName="cmdButtonSave" ApplicationDefaults.IsChecked="false" />
</QuickAccessToolbar.ApplicationDefaults>
</QuickAccessToolbar>
</Ribbon.QuickAccessToolbar>
<Ribbon.Tabs>
<Tab CommandName="cmdTabMain">
<Group CommandName="cmdGroupFileActions" SizeDefinition="ThreeButtons">
<Button CommandName="cmdButtonNew" />
<Button CommandName="cmdButtonOpen" />
<Button CommandName="cmdButtonSave" />
</Group>
</Tab>
</Ribbon.Tabs>
</Ribbon>
</Application.Views>
正如您所看到的,QuickAccessToolbar
元素定义了两个命令名称。第一个由属性“CommandName
”标识,是实际快速访问工具栏的命令。第二个由属性“CustomizeCommandName
”标识,是菜单上“更多命令...”按钮的命令(您可以在上图中看到)。“更多命令...”按钮是可选的,但如果指定,可用于打开应用程序定义的对话框,用于选择更多命令到 QAT 中。
您可以在标记中看到的另一件事是使用 QuickAccessToolbar.ApplicationDefaults
元素,该元素允许开发人员指定哪些项目将出现在 QAT 弹出菜单中。每个项目都可以用 IsChecked
属性标记,在这种情况下,该项目将显示在 QAT 上。
使用 QuickAccessToolbar - 代码隐藏
初始化
private Ribbon _ribbon;
private RibbonQuickAccessToolbar _ribbonQuickAccessToolbar;
public Form1()
{
InitializeComponent();
_ribbon = new Ribbon();
_ribbonQuickAccessToolbar = new RibbonQuickAccessToolbar(_ribbon,
(uint)RibbonMarkupCommands.cmdQAT,
(uint)RibbonMarkupCommands.cmdCustomizeQAT);
// register to the QAT customize button
_ribbonQuickAccessToolbar.OnExecute +=
new OnExecuteEventHandler(_ribbonQuickAccessToolbar_OnExecute);
}
请注意,自定义 QAT 按钮是可选的,因此如果您没有声明它,则应使用 RibbonQuickAccessToolbar
类的另一个构造函数。
处理自定义 QAT 按钮(“更多命令...”)
void _ribbonQuickAccessToolbar_OnExecute(PropertyKeyRef key, PropVariantRef currentValue,
IUISimplePropertySet commandExecutionProperties)
{
MessageBox.Show("Open customize commands dialog..");
}
应用程序开发人员可能应该加载一个对话框,允许用户选择命令,然后通过操作命令列表来设置它们。
操作命令列表
void _buttonNew_OnExecute(PropertyKeyRef key, PropVariantRef currentValue,
IUISimplePropertySet commandExecutionProperties)
{
// changing QAT commands list
IUICollection itemsSource = _ribbonQuickAccessToolbar.ItemsSource;
itemsSource.Clear();
itemsSource.Add(new GalleryCommandPropertySet()
{ CommandID = (uint)RibbonMarkupCommands.cmdButtonNew });
itemsSource.Add(new GalleryCommandPropertySet()
{ CommandID = (uint)RibbonMarkupCommands.cmdButtonOpen });
itemsSource.Add(new GalleryCommandPropertySet()
{ CommandID = (uint)RibbonMarkupCommands.cmdButtonSave });
}
此代码与操作 图库 的命令列表的代码非常相似。
保存和加载 Ribbon 设置
private Stream _stream;
void _buttonSave_OnExecute(PropertyKeyRef key, PropVariantRef currentValue,
IUISimplePropertySet commandExecutionProperties)
{
// save ribbon QAT settings
_stream = new MemoryStream();
_ribbon.SaveSettingsToStream(_stream);
}
void _buttonOpen_OnExecute(PropertyKeyRef key, PropVariantRef currentValue,
IUISimplePropertySet commandExecutionProperties)
{
// load ribbon QAT settings
_stream.Position = 0;
_ribbon.LoadSettingsFromStream(_stream);
}
您可以将设置保存在任何 .NET 流对象中;通常,它应该保存到文件或注册表中。
保存的设置包括:QAT 命令列表、Ribbon QuickAccessToolbarDock
属性和 Ribbon Minimized
属性。
目前就到这里为止。