如何更改comboBoxEx Dotnetbar的颜色作为表单具有不同风格的StyleManager

时间:2014-11-18 15:49:16

标签: c# winforms dotnetbar

我的mdiMain StyleManager属性如下 ManagerStyle:Office2013 MetroColorParameters:CanvasColor:black,baseColor:White 和我的孩子形式我想给组合框提供不同的背面颜色和边框颜色,与StyleManager一样,它是黑色,我希望它变成白色背景灰色边框。

我使用以下代码在StyleManager更改样式

后更改颜色
         LinearGradientColorTable linGrBrush = new LinearGradientColorTable(
         Color.FromArgb(192, 192, 192),  
         Color.FromArgb(104, 104, 104));  

            if (GlobalManager.Renderer is Office2007Renderer)
            {
              Office2007ColorTable ct = ((Office2007Renderer)GlobalManager.Renderer).ColorTable;

              ct.ComboBox.DroppedDown.Background = Color.White;
              ct.ComboBox.Default.Background = Color.White;
              ct.ComboBox.Default.ExpandBackground = linGrBrush;
              ct.ComboBox.DroppedDown.Border = Color.Gray;
              ct.ComboBox.Default.Border = Color.Gray; 
             }

1 个答案:

答案 0 :(得分:0)

下面是解决了我的问题的代码我使用了ComboBox.DefaultStandalone属性而不是ComboBox.Default

       LinearGradientColorTable linGrBrush = new LinearGradientColorTable(
           Color.DarkGray,
           Color.DarkGray);

        Office2007Renderer renderer = GlobalManager.Renderer as Office2007Renderer;
        if (renderer == null) return;
        Office2007ColorTable table = renderer.ColorTable;
        // Stand-alone ComboBoxEx colors
        Office2007ComboBoxColorTable comboColors = table.ComboBox;
        comboColors.DefaultStandalone.Border = Color.DarkGray;
        comboColors.DefaultStandalone.Background = Color.White;
        comboColors.DefaultStandalone.ExpandText = Color.LightGray;
        comboColors.DefaultStandalone.ExpandBorderInner = linGrBrush;
        comboColors.DefaultStandalone.ExpandBorderOuter = linGrBrush;