Exemplo n.º 1
0
            protected override void OnDrawItem(DrawItemEventArgs e)
            {
                if (e.Index < 0 || e.Index >= Items.Count)
                {
                    base.OnDrawItem(e);
                    return;
                }

                e.DrawBackground();

                Rectangle rect = GetItemRectangle(e.Index);

                if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)
                {
                    PaintHelper.DrawHoverBackgroundFlat(e.Graphics, rect, SystemColors.Highlight);
                }
                else
                {
                    e.Graphics.DrawLine(SystemPens.ControlLight, rect.Left + 2, rect.Bottom - 1, rect.Right - 2, rect.Bottom - 1);
                }

                if (Owner != null)
                {
                    var item = Items[e.Index];
                    if (item is ListItem <T> )
                    {
                        Owner.DrawListItem(e, rect, (ListItem <T>)item);
                    }
                }
            }
Exemplo n.º 2
0
            protected override void OnDrawItem(DrawItemEventArgs e)
            {
                if (e.Index < 0 || e.Index >= Items.Count)
                {
                    base.OnDrawItem(e);
                    return;
                }

                e.DrawBackground();

                Rectangle rect = GetItemRectangle(e.Index);
                Brush     brushFore;

                if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)
                {
                    brushFore = SystemBrushes.HighlightText;

                    PaintHelper.DrawHoverBackgroundFlat(e.Graphics, rect, SystemColors.Highlight);
                }
                else
                {
                    brushFore = SystemBrushes.WindowText;
                    e.Graphics.DrawLine(SystemPens.ControlLight, rect.Left + 2, rect.Bottom - 1, rect.Right - 2, rect.Bottom - 1);
                }

                var lt = (ListItem <string>)Items[e.Index];

                rect.Inflate(-1, -1);

                // draw icon
                Image image = lt.Image;

                if (image != null)
                {
                    Rectangle rectImage = new Rectangle(rect.Left + 2, rect.Y + (rect.Height - 16) / 2, 16, 16);
                    e.Graphics.DrawImage(image, rectImage, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel);
                }
                rect.X     += 20;
                rect.Width -= 20;

                // draw text
                StringFormat sf = new StringFormat(PaintHelper.SFLeft);

                sf.FormatFlags |= StringFormatFlags.NoWrap;
                Font   font = Font;
                string str  = lt.Text;

                e.Graphics.DrawString(str, font, brushFore, rect, sf);
            }