using System.ComponentModel; using System.Drawing; using System.Windows.Forms; namespace MaterialSkin.Controls { public partial class MaterialComboBox : ComboBox { [Browsable(false)] public MaterialSkinManager SkinManager => MaterialSkinManager.Instance; public MaterialComboBox() { DrawMode = DrawMode.OwnerDrawFixed; DrawItem += AdvancedComboBox_DrawItem; } void AdvancedComboBox_DrawItem(object sender, DrawItemEventArgs e) { if (e.Index < 0) return; ComboBox combo = sender as ComboBox; if ((e.State & DrawItemState.Selected) == DrawItemState.Selected) e.Graphics.FillRectangle(new SolidBrush(SkinManager.ColorScheme.AccentColor), e.Bounds); else e.Graphics.FillRectangle(new SolidBrush(combo.BackColor), e.Bounds); e.Graphics.DrawString(combo.Items[e.Index].ToString(), e.Font, SkinManager.GetRaisedButtonTextBrush((e.State & DrawItemState.Selected) == DrawItemState.Selected), new Point(e.Bounds.X, e.Bounds.Y)); e.DrawFocusRectangle(); } } }