演练:使用功能区 XML 创建自定义选项卡

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

适用于: 本主题中的信息适用于以下应用程序的文档级项目和 VSTO 外接程序项目: Excel;InfoPath 2013 和 InfoPath 2010;前景;幻灯片;项目;Visio;词。 有关详细信息,请参阅办公室应用程序和项目类型提供的功能。

本演练阐释了以下任务:

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

  • 使用“加载项”选项卡上的按钮自动Microsoft 办公室 Word。

注意

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

先决条件

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

创建项目

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

创建新项目

  1. 创建名为 MyRibbonAddIn 的 Word 外接程序项目。

    有关详细信息,请参阅“如何:在 Visual Studio 中创建办公室项目。

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

创建 VSTO 外接程序选项卡

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

创建“加载项”选项卡

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

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

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

    MyRibbon.cs MyRibbon.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.cs 或 MyRibbon.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 用户界面的更多信息:

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

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

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

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