我有一个VSTO Outlook功能区(上下文菜单),按预期工作:
<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
<contextMenus>
<contextMenu idMso="ContextMenuMailItem">
<button id="DoThis"
label="Label"
onAction="DoThis"
getVisible="GetVisible"/>
</contextMenu>
</customUI>
但是,如果我有一个getLabel属性,那么上下文菜单就不再显示了。我想我必须搞砸了,但没有迹象表明是什么;没有日志,没有例外,没有。此外,我找不到任何文件记录每个回调的定义应该是什么。我只是尝试了显而易见的,getLabel应该返回一个字符串,但它似乎不起作用。 getVisible工作正常(返回bool)。
<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
<contextMenus>
<contextMenu idMso="ContextMenuMailItem">
<button id="DoThis"
label="Label"
onAction="DoThis"
getVisible="GetVisible"
getLabel="GetLabelMoveToReviewFolderMultiple"/>
</contextMenu>
</customUI>
和后面的代码(其他方法未显示):
[ComVisible(true)]
public class ContextMenu : Office.IRibbonExtensibility
{
public string GetLabelMoveToReviewFolderMultiple(Office.IRibbonControl control)
{
return "Custom Label";
}
}
答案 0 :(得分:2)
不要同时使用label
和getLabel
。另外,在File | Options | Advanced | Developer
中启用插件错误以查看所有功能区XML错误。
答案 1 :(得分:0)
好吧,在编写问题时,我尝试使用getLabel删除上下文菜单的label属性,这确实解决了问题;上下文菜单在那之后工作正常。我(最初)认为将标签保留为默认值可能是有意义的。
documentation解释了什么是互斥的。