自定义 InfoPath 功能区

自定义 Microsoft Office InfoPath 中的功能区时,必须考虑您的自定义功能区将在该应用程序中显示的位置。 InfoPath 2010 可以在以下三种类型的 InfoPath 应用程序窗口中显示功能区:

  • 用来显示以设计模式打开的表单模板的窗口。

  • 用来显示基于表单模板的表单的窗口。

  • “打印预览”窗口。

**适用于:**本主题中的信息适用于 InfoPath 2010 的应用程序级项目。有关更多信息,请参见按 Office 应用程序和项目类型提供的功能

用户和设计人员以设计模式打开表单模板,以修改模板的外观和布局。 用户打开基于表单模板的表单以添加内容。 有关更多信息,请参见 Switch form designing a form template to filling out a form(从设计表单模板切换到填充表单)。

“打印预览”窗口使设计人员和用户可以在打印之前预览表单或表单模板的页面。

提示

“打印预览”窗口中不会显示“外接程序”选项卡。 如果要在“打印预览”窗口中显示自定义选项卡,请确保选项卡的“OfficeId”属性未设置为“TabAddIns”

您必须指定用于显示功能区的每个窗口的功能区类型。

在功能区设计器中指定功能区类型

如果使用的是**“功能区(可视化设计器)”项,可在“属性”窗口中单击功能区的“RibbonType”**属性,然后选择下表中描述的任意功能区 ID。

功能区 ID

在运行项目时将显示功能区的窗口

Microsoft.InfoPath.Designer

用来显示以设计模式打开的表单模板的窗口。

Microsoft.InfoPath.Editor

用来显示基于表单模板的表单的窗口。

Microsoft.InfoPath.PrintPreview

“打印预览”窗口。

可以在一个项目中添加多个功能区。 如果多个功能区共享一个功能区 ID,可重写项目的 ThisAddin 类的 CreateRibbonExtensibilityObject 方法,以指定在运行时显示哪个功能区。 有关更多信息,请参见功能区概述

使用功能区 XML 指定功能区类型

如果使用的是**“功能区(XML)”**项,可检查 IRibbonExtensibility.GetCustomUI(String) 方法中的 ribbonID 参数的值,并返回相应的功能区。

IRibbonExtensibility.GetCustomUI(String) 方法由 Visual Studio 在功能区代码文件中自动生成。 ribbonID 参数是一个用来标识打开的 InfoPath 窗口类型的字符串。

下面的代码示例演示如何只在以设计模式显示表单模板的窗口中显示自定义功能区。 要显示的功能区在 GetResourceText() 方法中指定,该方法在功能区类中生成。 有关功能区类的更多信息,请参见功能区 XML

Public Function GetCustomUI(ByVal ribbonID As String) As String Implements Office.IRibbonExtensibility.GetCustomUI
    Dim ribbonXML As String = String.Empty

    If ribbonID = "Microsoft.InfoPath.Designer" Then
        ribbonXML = GetResourceText("MyInfoPathProject.Ribbon.xml")
    End If

    Return ribbonXML

End Function
public string GetCustomUI(string ribbonID)
{
    string ribbonXML = String.Empty;

    if (ribbonID == "Microsoft.InfoPath.Designer")
    {
        ribbonXML = GetResourceText("MyInfoPathProject.Ribbon.xml");
    }

    return ribbonXML;
}

请参见

概念

在运行时访问功能区

功能区设计器

功能区 XML

其他资源

功能区概述