Exemplo n.º 1
0
 private void ManagedListViewPanel1_DrawItem(object sender, ManagedListViewItemDrawArgs e)
 {
     if (DrawItem != null)
     {
         DrawItem(this, e);
     }
 }
Exemplo n.º 2
0
        private void DrawThumbailsView(PaintEventArgs pe)
        {
            Size CharSize = TextRenderer.MeasureText("TEST", this.Font);
            itemTextHeight = CharSize.Height * 2;

            int vLines = this.Height / (spaceBetweenItemsThunmbailsView + ThumbnailsHeight + itemTextHeight);
            int hLines = this.Width / (spaceBetweenItemsThunmbailsView + ThumbnailsWidth);
            if (hLines == 0) hLines = 1;
            int passedRows = VscrollOffset / (spaceBetweenItemsThunmbailsView + ThumbnailsHeight + itemTextHeight);
            int itemIndex = passedRows * hLines;
            if (itemIndex >= items.Count)
                return;
            int y = 2;
            for (int i = 0; i < vLines + 2; i++)
            {
                int x = spaceBetweenItemsThunmbailsView;
                for (int j = 0; j < hLines; j++)
                {
                    int offset = VscrollOffset % (spaceBetweenItemsThunmbailsView + ThumbnailsHeight + itemTextHeight);
                    if (highlightItemAsOver)
                    {
                        if (itemIndex == overItemSelectedIndex)
                        {
                            pe.Graphics.FillRectangle(new SolidBrush(ItemMouseOverColor),
                                new Rectangle(x - 2, y - offset - 2, ThumbnailsWidth + 4, ThumbnailsHeight + itemTextHeight + 4));
                        }
                    }
                    if (items[itemIndex].Selected)
                        pe.Graphics.FillRectangle(new SolidBrush(ItemHighlightColor),
                            new Rectangle(x - 2, y - offset - 2, ThumbnailsWidth + 4, ThumbnailsHeight + itemTextHeight + 4));

                    StringFormat format = new StringFormat();
                    format.Alignment = StringAlignment.Center;
                    //format.LineAlignment = StringAlignment.Center;
                    format.Trimming = StringTrimming.EllipsisCharacter;
                    string textToDraw = "";
                    Image imageToDraw = null;

                    switch (items[itemIndex].DrawMode)
                    {
                        case ManagedListViewItemDrawMode.Text:
                        case ManagedListViewItemDrawMode.Image:
                        case ManagedListViewItemDrawMode.TextAndImage:
                            if (items[itemIndex].ImageIndex < ImagesList.Images.Count)
                            {
                                imageToDraw = ImagesList.Images[items[itemIndex].ImageIndex];
                            }
                            textToDraw = items[itemIndex].Text;
                            break;

                        case ManagedListViewItemDrawMode.UserDraw:
                            ManagedListViewItemDrawArgs args = new ManagedListViewItemDrawArgs(itemIndex);
                            if (DrawItem != null)
                                DrawItem(this, args);
                            imageToDraw = args.ImageToDraw;
                            textToDraw = args.TextToDraw;
                            break;
                    }
                    // Draw image
                    if (imageToDraw != null)
                    {
                        Size siz = ThumbnailsKeepImageSize ?
                            CalculateStretchImageValuesStretch(imageToDraw.Width, imageToDraw.Height) :
                            CalculateStretchImageValues(imageToDraw.Width, imageToDraw.Height);

                        int imgX = x + (ThumbnailsWidth / 2) - (siz.Width / 2);
                        int imgY = (y - offset) + (ThumbnailsHeight / 2) - (siz.Height / 2);
                        pe.Graphics.DrawImage(imageToDraw, new Rectangle(imgX, imgY, siz.Width, siz.Height));
                    }
                    // Draw text
                    pe.Graphics.DrawString(textToDraw, this.Font, new SolidBrush(items[itemIndex].Color),
                         new Rectangle(x, y + ThumbnailsHeight + 1 - offset, ThumbnailsWidth, itemTextHeight), format);
                    // advance
                    x += ThumbnailsWidth + spaceBetweenItemsThunmbailsView;
                    itemIndex++;
                    if (itemIndex == items.Count)
                        break;
                }
                y += ThumbnailsHeight + itemTextHeight + spaceBetweenItemsThunmbailsView;
                if (itemIndex == items.Count)
                    break;
            }
        }
Exemplo n.º 3
0
 private void ManagedListViewPanel1_DrawItem(object sender, ManagedListViewItemDrawArgs e)
 {
     if (DrawItem != null)
         DrawItem(this, e);
 }