2016-06-13 7 views
0

私は、Excelのリボンを作成しました。このリボンは、ユーザーが差異のある環境に切り替えるためのドロップダウンを持っています。ドロップダウンで選択した値に背景色を付けることができます例えば、ライブの場合、私は赤い背景でライブを表示することができ、同様に緑の背景を持つDevExcelリボンドロップダウンの背景色

答えて

3

ドロップダウンの背景を変更することはできませんが、アイテムごとに異なる画像を使用することはできます。このような何か:あなたはリボンを無効にし、動的にコントロールに新しい画像を設定する必要がありますので、ユーザがするとき、ドロップダウンから項目を選択した後

enter image description here

<?xml version="1.0" encoding="utf-8" ?> 
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="OnLoad"> 
    <ribbon> 
    <tabs> 
     <tab id="MyAddInTab" label="MY ADD-IN TAB"> 
     <group id="EnvironmentGroup" label="Environment"> 
      <dropDown id="environmentDropDown" showImage="true" showItemImage="true" 
        getImage="OnEnvironmentGetImage" 
        onAction="OnEnvironmentSelectionChanged" 
        getSelectedItemID="OnEnvironmentGetSelectedItemId"> 
      <item id="environmentDev" imageMso="ColorGreen" label="Development" /> 
      <item id="environmentTest" imageMso="ColorYellow" label="User Testing" /> 
      <item id="environmentProd" imageMso="ColorRed" label="Production" /> 
      </dropDown> 
     </group> 
     </tab> 
    </tabs> 
    </ribbon> 
</customUI> 

は、残念ながら、画像は表示されません選択が変更されます。このような

何か:このことを示唆ため

[ComVisible(true)] 
public class MyAddInRibbon : ExcelRibbon 
{ 
    private IRibbonUI _thisRibbon; 

    private string _selectedEnvironmentId = "environmentDev"; // Defaults to Dev 

    public void OnLoad(IRibbonUI ribbon) 
    { 
     if (ribbon == null) 
     { 
      throw new ArgumentNullException(nameof(ribbon)); 
     } 

     _thisRibbon = ribbon; 
    } 

    public string OnEnvironmentGetSelectedItemId(IRibbonControl control) 
    { 
     return _selectedEnvironmentId; 
    } 

    public void OnEnvironmentSelectionChanged(IRibbonControl control, 
string selectedId, int selectedIndex) 
    { 
     _selectedEnvironmentId = selectedId; 

     // Invalidate the drop down, so we can update the image next to the dropdown 
     _thisRibbon.InvalidateControl("environmentDropDown"); 
    } 

    public string OnEnvironmentGetImage(IRibbonControl control) 
    { 
     // This displays the image next to the dropdown 

     switch (_selectedEnvironmentId) 
     { 
      case "environmentDev": 
       return "ColorGreen"; 
      case "environmentTest": 
       return "ColorYellow"; 
      case "environmentProd": 
       return "ColorRed"; 
      default: 
       throw new InvalidOperationException(); 
     } 
    } 
} 
+0

おかげカイオ、その良い回避策 –