我已经构建了一个 Word 插件,现在想添加一个选项,以便在用户突出显示某个单词并右键单击它时从中调用函数。我在这里找到了有关如何修改manifest.xml 文件的文档,但它似乎没有显示如何添加到上下文菜单的完整示例,仅显示了如何添加按钮和下拉菜单。
该文档还向我指出了一个github页面显示示例,但同样缺少上下文菜单。它还指向这个视频,它似乎在 1:20 左右展示了我想要的内容,但也没有展示如何实现它。
到目前为止我有这个(添加在下面<FunctionFile>):
<ExtensionPoint xsi:type="ContextMenu">
<OfficeMenu id="ContextMenuText">
<Control xsi:type="Menu" id="TestMenu">
<Label resid="ContextMenuLabel" />
<Supertip>
<Title resid="ContextualMenuTitle" />
<Description resid="ContextualMenuTitleDesc" />
</Supertip>
</Control>
</OfficeMenu>
</ExtensionPoint>
Run Code Online (Sandbox Code Playgroud)
当我尝试使用此工具验证清单文件时,它告诉我缺少一个Icon元素,但我不需要上下文菜单的图像?
我想做的事情是否可能,如果可以,有人可以给我举个例子吗?
我已经更新了我的代码以反映 @Mavi Domates 所写的内容
<ExtensionPoint xsi:type="ContextMenu">
<OfficeMenu id="ContextMenuText">
<Control xsi:type="Button" id="openSearchButton">
<Label resid="openSearchButtonLabel" />
<Supertip>
<Title resid="openSearchButtonTitle" />
<Description resid="openSearchButtonDescription" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Contoso.tpicon_16x16" />
<bt:Image size="32" resid="Contoso.tpicon_32x32" />
<bt:Image size="80" resid="Contoso.tpicon_80x80" />
</Icon>
<Action xsi:type="ExecuteFunction">
<FunctionName>getData</FunctionName>
</Action>
</Control>
</OfficeMenu>
</ExtensionPoint>
Run Code Online (Sandbox Code Playgroud)
当我添加此代码时(在默认值的正下方,<ExtensionPoint xsi:type="PrimaryCommandSurface">我的加载项不再显示在“我的加载项”菜单中。我下载了 Microsoft 的清单验证器,它告诉我我的清单没问题。
我已将范围缩小到Control导致问题的节点。如果我只是添加:
<ExtensionPoint xsi:type="ContextMenu">
<OfficeMenu id="ContextMenuText">
</OfficeMenu>
</ExtensionPoint>
Run Code Online (Sandbox Code Playgroud)
我的加载项仍然显示在菜单中。我还在我的资源中添加了相关字符串<bt:ShortStrings>:
<bt:String id="openSearchButtonLabel" DefaultValue="Check it out!" />
<bt:String id="openSearchButtonTitle" DefaultValue="Hover over me" />
<bt:String id="openSearchButtonDescription" DefaultValue="For more info go here" />
Run Code Online (Sandbox Code Playgroud)
我的代码看起来和文档完全一样。我不知道从这里该去哪里。如果这改变了事情的话,我正在使用Mac。
你想做的事情是可能的,而且你已经非常接近它了:)
您已将 ContextMenu 控件选择为类型Menu而不是Button。这意味着您需要一些子菜单控件。
从此处的文档: https: //learn.microsoft.com/en-us/office/dev/add-ins/develop/create-addin-commands#step-7-add-the-resources-element
每组至少需要一个对照。控制元素可以是按钮或菜单。使用 Menu 指定按钮控件的下拉列表。目前仅支持按钮和菜单。有关详细信息,请参阅按钮控件和菜单控件部分。
这意味着如果您想要嵌套菜单,您的清单是正确的,您只需向其中添加项目+图标即可。下面您可以看到示例代码,该代码根据您单击的子菜单打开任务窗格/或执行函数。
<ExtensionPoint xsi:type="ContextMenu">
<OfficeMenu id="ContextMenuText">
<Control xsi:type="Menu" id="TestMenu">
<Label resid="ContextMenuLabel" />
<Supertip>
<Title resid="ContextualMenuTitle" />
<Description resid="ContextualMenuTitleDesc" />
</Supertip>
<Icon>
<bt:Image size="16" resid="your_icon_16"/>
<bt:Image size="32" resid="your_icon_32"/>
<bt:Image size="64" resid="your_icon_64"/>
<bt:Image size="80" resid="_icon_80"/>
</Icon>
<!-- Add your context sub-menu items -->
<Items>
<Item id="contextitem1">
<Label resid="somecontextlabel1"/>
<Supertip>
<Title resid="somecontexttitle1"/>
<Description resid="somedescription1"/>
</Supertip>
<Icon>
<bt:Image size="16" resid="someimage16"/>
<bt:Image size="32" resid="someimage32"/>
<bt:Image size="64" resid="someimage64"/>
<bt:Image size="80" resid="someimage80"/>
</Icon>
<Action xsi:type="ShowTaskpane">
<TaskpaneId>Mysupertaskpane1</TaskpaneId>
<SourceLocation resid="TaskPaneSourceLocation1"/>
</Action>
</Item>
<Item id="contextitem2">
<Label resid="somecontextlabel2"/>
<Supertip>
<Title resid="somecontexttitle2"/>
<Description resid="somedescription2"/>
</Supertip>
<Icon>
<bt:Image size="16" resid="someimage16"/>
<bt:Image size="32" resid="someimage32"/>
<bt:Image size="64" resid="someimage64"/>
<bt:Image size="80" resid="someimage80"/>
</Icon>
<Action xsi:type="ExecuteFunction">
<FunctionName>dosomejsmagic</FunctionName>
</Action>
</Item>
</Items>
</Control>
</OfficeMenu>
</ExtensionPoint>
Run Code Online (Sandbox Code Playgroud)
如果情况并非如此,并且您只是在寻找Button(因此没有子菜单) - 那么您可以使用此作为示例,查看控件类型现在设置为按钮
<ExtensionPoint xsi:type="ContextMenu">
<OfficeMenu id="ContextMenuText">
<Control xsi:type="Button" id="Button1Id1">
<Label resid="residLabel" />
<Tooltip resid="residToolTip" />
<Supertip>
<Title resid="residLabel" />
<Description resid="residToolTip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="icon1_32x32" />
<bt:Image size="32" resid="icon1_32x32" />
<bt:Image size="80" resid="icon1_32x32" />
</Icon>
<Action xsi:type="ExecuteFunction">
<FunctionName>getData</FunctionName>
</Action>
</Control>
</OfficeMenu>
</ExtensionPoint>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2224 次 |
| 最近记录: |