Entwickler-Ecke
WinForms - [2.0, Listview] Neuanordnung nach Zuweisung von Imagelist
Christian S. - Di 29.11.05 20:35
Titel: [2.0, Listview] Neuanordnung nach Zuweisung von Imagelist
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
Christian S. - Do 01.12.05 19:44
Hallo!
Ich habe die
TileSize der Listview nun manuell so gesetzt, dass es passt. Also sowas wie:
C#-Quelltext
1:
| lv_files.TileSize = new Size(250, imageList1.ImageSize.Height + 15); |
Grüße
Christian
Christian S. - Sa 03.12.05 19:12
Nachtrag: Es funktioniert auch, den Parent der ListView einmal auf null und wieder zurückzusetzen. Das ist zwar irgendwie wenig schön, spart es einem aber, die Größe der Items manuell zu setzen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!