C# VSTO 合并文档级功能区和应用程序级功能区
C# VSTO Merge Doc Level Ribbon and App Level Ribbon
我在 Excel 中创建了一个包含功能区的文档级自定义,我想为 Excel 创建一个应用程序级自定义,其中包含同名的功能区。我的问题是如何让两条丝带结合起来?目前,它们具有相同的自定义 ControlId。
控件的 idQ 属性 允许多个加载项共享容器,例如自定义选项卡和组。
在下面的 VBA 示例中,两个 Excel 加载项在加载项选项卡上共享同一个 "Contoso" 组;每个添加一个按钮。关键是在标记中指定相同的唯一命名空间。然后,控件可以使用 idQ 引用此命名空间。
CustomUI for add-in 1
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"
xmlns:x="myNameSpace" >
<ribbon>
<tabs>
<tab idMso="TabAddIns">
<group idQ="x:Contoso" label="Contoso">
<button id="C1" label="Contoso Button 1" size="large"
imageMso="FileSave" onAction="c_action1" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
CustomUI for add-in 2
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"
xmlns:x="myNameSpace" >
<ribbon>
<tabs>
<tab idMso="TabAddIns">
<group idQ="x:Contoso" label="Contoso">
<button id="C2" label="Contoso Button 2" size="large"
imageMso="FileSave" onAction="c_action2" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
如果您使用 COM 加载项自定义 Fluent UI,命名空间名称必须是 COM 加载项的 ProgID,但行为是相同的。使用共享加载项时,ProgID 为 AddInName.Connect。当您使用 Microsoft Visual Studio 2005 Tools for the 2007 Microsoft Office System (Visual Studio 2005 Tools for Office Second Edition) 创建加载项时,ProgID 是加载项的名称。
您可以在 MSDN 中的以下系列文章中阅读有关 Fluent UI(又名功能区 UI)的更多信息:
我在 Excel 中创建了一个包含功能区的文档级自定义,我想为 Excel 创建一个应用程序级自定义,其中包含同名的功能区。我的问题是如何让两条丝带结合起来?目前,它们具有相同的自定义 ControlId。
控件的 idQ 属性 允许多个加载项共享容器,例如自定义选项卡和组。
在下面的 VBA 示例中,两个 Excel 加载项在加载项选项卡上共享同一个 "Contoso" 组;每个添加一个按钮。关键是在标记中指定相同的唯一命名空间。然后,控件可以使用 idQ 引用此命名空间。
CustomUI for add-in 1
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"
xmlns:x="myNameSpace" >
<ribbon>
<tabs>
<tab idMso="TabAddIns">
<group idQ="x:Contoso" label="Contoso">
<button id="C1" label="Contoso Button 1" size="large"
imageMso="FileSave" onAction="c_action1" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
CustomUI for add-in 2
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"
xmlns:x="myNameSpace" >
<ribbon>
<tabs>
<tab idMso="TabAddIns">
<group idQ="x:Contoso" label="Contoso">
<button id="C2" label="Contoso Button 2" size="large"
imageMso="FileSave" onAction="c_action2" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
如果您使用 COM 加载项自定义 Fluent UI,命名空间名称必须是 COM 加载项的 ProgID,但行为是相同的。使用共享加载项时,ProgID 为 AddInName.Connect。当您使用 Microsoft Visual Studio 2005 Tools for the 2007 Microsoft Office System (Visual Studio 2005 Tools for Office Second Edition) 创建加载项时,ProgID 是加载项的名称。
您可以在 MSDN 中的以下系列文章中阅读有关 Fluent UI(又名功能区 UI)的更多信息: