2017-05-29 27 views
0

VSTOリボン(Outlook 2016用)を使用してダイナミックメニュー階層を作成するにはどうすればよいですか?VSTOリボンコンテキストメニュー動的階層

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> 

答えて

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