分步指南:使用Ribbon XML创建自定义选项卡

本演练演示如何使用 功能区(XML)项 创建自定义功能区选项卡。

适用于: 本主题中的信息适用于以下应用程序的文档级项目和 VSTO 外接程序项目:Excel、InfoPath 2013 和 InfoPath 2010、Outlook、PowerPoint、Project、Visio、Word。 有关详细信息,请参阅 Office 应用程序和项目类型提供的功能

本演练阐释了以下任务:

  • “加载项 ”选项卡添加按钮。“ 加载项 ”选项卡是在功能区 XML 文件中定义的默认选项卡。

  • 通过使用“加载项”选项卡上的按钮来实现对 Microsoft Office Word 的自动化。

注释

以下说明中的某些 Visual Studio 用户界面元素在计算机上出现的名称或位置可能会不同。 这些元素取决于你所使用的 Visual Studio 版本和你所使用的设置。 有关详细信息,请参阅个性化设置 Visual Studio IDE

先决条件

你需要满足以下条件才能完成本演练:

创建项目

第一步是创建 Word VSTO 外接程序项目。 稍后将自定义本文档的 “加载项 ”选项卡。

创建新项目

  1. 创建名为 MyRibbonAddInWord 外接程序项目。

    有关详细信息,请参阅 如何:在 Visual Studio 中创建 Office 项目

    Visual Studio 将打开 ThisAddIn.csThisAddIn.vb 代码文件,并将 MyRibbonAddIn 项目添加到 解决方案资源管理器

创建 VSTO 外接程序选项卡

若要创建加载项选项卡,请将功能区(XML)项添加到项目。 在本演练的后面部分,你将向此选项卡添加一些按钮。

创建“加载项”选项卡

  1. “项目 ”菜单上,单击“ 添加新项”。

  2. 在“添加新项”对话框中,选择功能区(XML)。

  3. 将新功能区的名称更改为 MyRibbon,然后单击“ 添加”。

    MyRibbon.csMyRibbon.vb文件将在设计器中打开。 命名 为MyRibbon.xml 的 XML 文件也会添加到项目中。

  4. 解决方案资源管理器中,右键单击 ThisAddin.csThisAddin.vb,然后单击“ 查看代码”。

  5. 将以下代码添加到 ThisAddin 类。 此代码重写CreateRibbonExtensibilityObject方法,并将功能区 XML 类返回给 Office 应用程序。

    protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
    {
        return new MyRibbon();
    }
    
  6. 解决方案资源管理器中,右键单击 MyRibbonAddIn 项目,然后单击“ 生成”。 验证项目生成时是否没有错误。

向“加载项”选项卡添加按钮

此 VSTO 外接程序的目标是为用户提供向活动文档添加样本文本和特定表的方法。 若要提供用户界面,请通过修改功能区 XML 文件将两个按钮添加到 “加载项 ”选项卡。 在本演练的后面部分,你将为按钮定义回调方法。 有关功能区 XML 文件的详细信息,请参阅 功能区 XML

向“加载项”选项卡添加按钮

  1. 解决方案资源管理器中,右键单击 MyRibbon.xml ,然后单击“ 打开”。

  2. Tab 元素的内容替换为以下 XML。 此 XML 将默认控件组的标签更改为 “内容”,并在标签 “插入文本 ”和 “插入表格”中添加两个新按钮。

    <tab idMso="TabAddIns">
        <group id="ContentGroup" label="Content">
            <button id="textButton" label="Insert Text"
                 screentip="Text" onAction="OnTextButton"
                 supertip="Inserts text at the cursor location."/>
            <button id="tableButton" label="Insert Table"
                 screentip="Table" onAction="OnTableButton"
                 supertip="Inserts a table at the cursor location."/>
        </group>
    </tab>
    

通过按钮自动化文档

你必须为onAction”和“插入表格”按钮添加回调方法,以便在用户单击它们时执行作。 有关功能区控件的回调方法的详细信息,请参阅 功能区 XML

添加按钮的回调方法

  1. 解决方案资源管理器中,右键单击 MyRibbon.csMyRibbon.vb,然后单击“ 打开”。

  2. 将以下代码添加到 MyRibbon.csMyRibbon.vb 文件的顶部。 此代码为 Microsoft.Office.Interop.Word 命名空间创建别名。

    using Word = Microsoft.Office.Interop.Word;
    
  3. 将以下方法添加到 MyRibbon 类。 这是用于插入文本按钮的回调方法,用于在光标当前位置将字符串添加到活动文档中。

    public void OnTextButton(Office.IRibbonControl control)
    {
        Word.Range currentRange = Globals.ThisAddIn.Application.Selection.Range;
        currentRange.Text = "This text was added by the Ribbon.";
    }
    
  4. 将以下方法添加到 MyRibbon 类。 这是“ 插入表格 ”按钮的回调方法,可将表格添加到光标当前位置的活动文档。

    public void OnTableButton(Office.IRibbonControl control)
    {
        object missing = System.Type.Missing;
        Word.Range currentRange = Globals.ThisAddIn.Application.Selection.Range;
        Word.Table newTable = Globals.ThisAddIn.Application.ActiveDocument.Tables.Add(
        currentRange, 3, 4, ref missing, ref missing);
    
        // Get all of the borders except for the diagonal borders.
        Word.Border[] borders = new Word.Border[6];
        borders[0] = newTable.Borders[Word.WdBorderType.wdBorderLeft];
        borders[1] = newTable.Borders[Word.WdBorderType.wdBorderRight];
        borders[2] = newTable.Borders[Word.WdBorderType.wdBorderTop];
        borders[3] = newTable.Borders[Word.WdBorderType.wdBorderBottom];
        borders[4] = newTable.Borders[Word.WdBorderType.wdBorderHorizontal];
        borders[5] = newTable.Borders[Word.WdBorderType.wdBorderVertical];
    
        // Format each of the borders.
        foreach (Word.Border border in borders)
        {
            border.LineStyle = Word.WdLineStyle.wdLineStyleSingle;
            border.Color = Word.WdColor.wdColorBlue;
        }
    }
    

测试 VSTO 插件

运行项目时,Word 将打开,名为 “加载项 ”的选项卡将显示在功能区上。 单击“加载项”选项卡上的“插入文本”和“插入表格”按钮以测试代码。

测试 VSTO 外接程序

  1. F5 运行项目。

  2. 确认功能区上显示 “加载项 ”选项卡。

  3. 单击“ 加载项 ”选项卡。

  4. 确认 内容 组在功能区上可见。

  5. 单击内容组中的“插入文本”按钮。

    字符串将被添加到文档中光标的当前位置。

  6. 单击内容组中的“插入表格”按钮。

    一个表格被添加到文档中的光标当前位置。

后续步骤

可以详细了解如何从以下主题自定义 Office UI:

  • 自定义不同的 Office 应用程序的功能区。 有关支持自定义功能区的应用程序的详细信息,请参阅 功能区概述

  • 使用功能区设计器自定义 Office 应用程序的功能区。 有关详细信息,请参阅 功能区设计器

  • 创建自定义操作窗格。 有关详细信息,请参阅 “操作窗格概述”

  • 使用 Outlook 窗体区域自定义 Microsoft Office Outlook 的 UI。 有关详细信息,请参阅 演练:设计 Outlook 窗体区域