Hallo!
Ich habe eine Listview im View-Style "Tile". Dort werden (in Gruppen sortiert) die Namen von Grafikdateien eingefügt. Auf Wunsch sollen in der Listview nun auch Thumbnails angezeigt werden. Das geht so:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| lv_files.BeginUpdate();
lv_files.LargeImageList = imageList1;
progressBar1.Maximum = lv_files.Items.Count; progressBar1.Value = 0; foreach (ListViewItem lvi in lv_files.Items) { string file = ((Resizer)lvi.Tag).Sourcefile;
if (!imageList1.Images.ContainsKey(file)) { Bitmap oldBmp = (Bitmap)Bitmap.FromFile(file); Image im = oldBmp.GetThumbnailImage(imageList1.ImageSize.Width, imageList1.ImageSize.Height, delegate { return false; }, IntPtr.Zero);
imageList1.Images.Add(file, im); }
lvi.ImageKey = file;
progressBar1.Value += 1; Application.DoEvents(); } lv_files.EndUpdate(); progressBar1.Value = 0; |
Die Klasse "Resizer" soll Euch dabei nicht stören, die hält einen Haufen Daten inkl. des Dateinamens. Das klappt ansich auch wunderbar, die Bilder werden erzeugt und angezeigt. Leider werden die Items aber nicht neu angeordnet, sodass der Platz nicht ausreicht und die einzelnen Items sich überschneiden. AutoArrange ist auf "true".
Wie kann ich das Problem lösen?
Grüße
Christian
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".