【问题标题】:VSTO Ribbon Context Menu Dynamic HierarchyVSTO 功能区上下文菜单动态层次结构
【发布时间】:2017-05-30 21:46:09
【问题描述】:

如何使用 VSTO 功能区(适用于 Outlook 2016)创建动态菜单层次结构?

xml 占位符可能如下所示,但我需要在菜单根目录下添加/删除菜单树(而不是 dummySingle)。似乎需要对菜单项进行“getDependents”回调。

<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
  <contextMenus>
    <contextMenu idMso="ContextMenuMailItem">
       <menu id="Menu Root" label="Menu Root" >
        <button id="dummySingle"
            label="dummy"            
            onAction="DummyAction"/>            
      </menu >      
  </contextMenus>  
</customUI>

【问题讨论】:

    标签: vsto contextmenu outlook-addin ribbon


    【解决方案1】:

    您需要查看 Office 功能区的动态菜单。这将是您开始的绝佳来源:Adding Custom Dynamic Menus to the Office Fluent User Interface。您的功能区 XML 看起来像 ...

    <dynamicMenu id="dynamicMenu1" 
                     label="Dynamic Menu" 
                     getContent="GetContent" />
    

    GetContent 处理程序上,您将构建动态菜单上下文,可能看起来像...

    public string GetContent(IRibbonControl control)
    {
        StringBuilder MyStringBuilder = new StringBuilder(@"<menu xmlns=""http://schemas.microsoft.com/office/2006/01/customui"" >");
        MyStringBuilder.Append(@"<button id=""button1"" label=""Insert Text"" onAction=""OnAction""  imageMso=""SignatureLineInsert"" />");
        MyStringBuilder.Append(@"<menuSeparator id=""menusep1"" getTitle=""GetTitle"" />");
        MyStringBuilder.Append(@"<button id=""button2"" label=""Insert More Text"" onAction=""OnAction"" imageMso=""FileDocumentInspect"" />");
        MyStringBuilder.Append(@"</menu>");
        return MyStringBuilder.ToString();
    }
    

    有关动态菜单的更多信息:documentation for dynamicMenu

    【讨论】:

      猜你喜欢
      • 2011-10-02
      • 2012-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多