private void ManagedListViewPanel1_DrawItem(object sender, ManagedListViewItemDrawArgs e) { if (DrawItem != null) { DrawItem(this, e); } }
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; } }
private void ManagedListViewPanel1_DrawItem(object sender, ManagedListViewItemDrawArgs e) { if (DrawItem != null) DrawItem(this, e); }