protected override void OnDrawItem(DrawItemEventArgs e) { if (e.Index == -1) { return; } ColorComboBoxItem ccbi = Items[e.Index] as ColorComboBoxItem; Rectangle r = e.Bounds; r.X = r.X + 24; if ((e.State & DrawItemState.Selected) == DrawItemState.Selected) { e.Graphics.FillRectangle(ThemeEngine.Current.ResPool.GetSolidBrush(Color.Blue), e.Bounds); // bot blue e.Graphics.FillRectangle(ThemeEngine.Current.ResPool.GetSolidBrush(ccbi.Color), e.Bounds.X + 3, e.Bounds.Y + 3, e.Bounds.X + 16, e.Bounds.Bottom - 3); e.Graphics.DrawRectangle(ThemeEngine.Current.ResPool.GetPen(Color.Black), e.Bounds.X + 2, e.Bounds.Y + 2, e.Bounds.X + 17, e.Bounds.Bottom - 3); e.Graphics.DrawString(ccbi.Name, this.Font, ThemeEngine.Current.ResPool.GetSolidBrush(Color.White), r); } else { e.Graphics.FillRectangle(ThemeEngine.Current.ResPool.GetSolidBrush(Color.White), e.Bounds); e.Graphics.FillRectangle(ThemeEngine.Current.ResPool.GetSolidBrush(ccbi.Color), e.Bounds.X + 3, e.Bounds.Y + 3, e.Bounds.X + 16, e.Bounds.Bottom - 3); e.Graphics.DrawRectangle(ThemeEngine.Current.ResPool.GetPen(Color.Black), e.Bounds.X + 2, e.Bounds.Y + 2, e.Bounds.X + 17, e.Bounds.Bottom - 3); e.Graphics.DrawString(ccbi.Name, this.Font, ThemeEngine.Current.ResPool.GetSolidBrush(Color.Black), r); } }
protected override void OnSelectedIndexChanged(EventArgs e) { ColorComboBoxItem ccbi = Items[SelectedIndex] as ColorComboBoxItem; selectedColor = ccbi.Color; fontDialog.Color = selectedColor; }