2017-05-29 2 views
0

Comment créer une hiérarchie de menus dynamiques à l'aide de rubans VSTO (pour Outlook 2016)? L'espace réservé xml pourrait ressembler à ceci, mais j'ai besoin d'ajouter/supprimer un arbre de menu sous la racine du menu (au lieu de dummySingle). Il semble qu'il devrait y avoir quelque chose comme un rappel "getDependents" pour les éléments de menu.Menu contextuel du ruban VSTO Hiérarchie dynamique

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

Répondre

1

Vous devez consulter les menus dynamiques pour Office Ribbon. Ce serait une bonne source pour vous de commencer avec: Adding Custom Dynamic Menus to the Office Fluent User Interface. Votre volonté XML ressemble à ruban ...

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

Et GetContent gestionnaire vous construirez des contextes de menu dynamique, peut ressemble ...

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(); 
} 

Plus d'informations sur les menus dynamiques: documentation for dynamicMenu