调试 vsto 功能区回调
Debugging vsto ribbon callbacks
我有一个 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 应该 return 一个字符串,但它似乎不起作用。 getVisible 工作正常(returning a 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";
}
}
好吧,在写问题时,我尝试使用 getLabel 删除上下文菜单的标签属性,这确实解决了问题;之后上下文菜单工作正常。我(最初)认为将标签保留为默认值可能有意义。
documentation解释什么是互斥。
不要同时使用 label
和 getLabel
。此外,启用 File | Options | Advanced | Developer
中的加载项错误以查看所有功能区 XML 错误。
我有一个 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 应该 return 一个字符串,但它似乎不起作用。 getVisible 工作正常(returning a 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";
}
}
好吧,在写问题时,我尝试使用 getLabel 删除上下文菜单的标签属性,这确实解决了问题;之后上下文菜单工作正常。我(最初)认为将标签保留为默认值可能有意义。
documentation解释什么是互斥。
不要同时使用 label
和 getLabel
。此外,启用 File | Options | Advanced | Developer
中的加载项错误以查看所有功能区 XML 错误。