gpt4 book ai didi

ms-word - Microsoft Word 加载项 - 添加到上下文菜单

转载 作者:行者123 更新时间:2023-12-04 01:49:38 25 4
gpt4 key购买 nike

我已经为 Word 构建了一个加载项,现在想添加一个选项,以便在用户突出显示一个词并右键单击它时从中调用一个函数。我找到了文档 here关于如何修改 manifest.xml 文件,但它似乎没有显示如何添加到上下文菜单的完整示例,仅显示了如何添加按钮和下拉菜单。

文档还指出了一个 github页面显示示例,但同样缺少上下文菜单。它还指向 this视频似乎在 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>

当我尝试使用 this tool 验证 list 文件时它告诉我缺少 Icon元素,但我不需要上下文菜单的图像?

我正在尝试做的事情是否可行,如果可行,有人可以给我举个例子吗?


编辑:

我更新了我的代码以反射(reflect)@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>

当我添加此代码(位于默认 <ExtensionPoint xsi:type="PrimaryCommandSurface"> 下方时,我的加载项不再显示在“我的加载项”菜单中。我下载了 Microsoft 的 manifest validator,它告诉我我的 list 没问题。

我已将范围缩小到 Control导致问题的节点。如果我只是添加:

<ExtensionPoint xsi:type="ContextMenu">
<OfficeMenu id="ContextMenuText">
</OfficeMenu>
</ExtensionPoint>

我的加载项仍显示在菜单中。我还在 <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" />

我的代码似乎与文档完全一样。我不确定从这里去哪里。如果事情有所改变,我正在使用 Mac。

最佳答案

您尝试做的事情是可能的,而且您非常非常接近它:)

您已将 ContextMenu 控件选择为 Menu 类型,而不是 Button。这意味着您需要一些子菜单控件。

来自此处的文档:https://learn.microsoft.com/en-us/office/dev/add-ins/develop/create-addin-commands#step-7-add-the-resources-element

Each group requires at least one control. A Control element can be either a Button or a Menu. Use Menu to specify a drop-down list of button controls. Currently, only buttons and menus are supported. See the Button controls and Menu controls sections for more information.

这意味着如果你想要嵌套菜单,你的 list 是正确的,你只需要向它添加项目+图标。您可以在下面看到示例代码,它根据您单击的子菜单打开任务 Pane /或执行功能。

<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>

如果不是这种情况,而您只是在寻找一个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>

关于ms-word - Microsoft Word 加载项 - 添加到上下文菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53844320/

25 4 0