2017-05-29 5 views
0

Wie erstellt man eine dynamische Menühierarchie mit VSTO Ribbons (für Outlook 2016)?VSTO Menüband Kontextmenü Dynamische Hierarchie

Der XML-Platzhalter könnte so aussehen, aber ich muss eine Menüstruktur unter dem Menüstamm hinzufügen/entfernen (anstelle von dummySingle). Es scheint so, als müsste ein "getDependents" -Rückruf für Menüpunkte erforderlich sein.

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

Antwort

1

Sie müssten dynamische Menüs für Office Ribbon betrachten. Dies wäre eine gute Quelle für Sie mit: Adding Custom Dynamic Menus to the Office Fluent User Interface. Ihr Band XML Wille sieht aus wie ...

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

Und auf GetContent Handler Sie dynamisches Menü Kontexte bauen, kann aussehen wie ...

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

Mehr zu Dynamische Menüs: documentation for dynamicMenu