19.11 Eine Liste mit Symbolen mit »ImageList« bereitstellen
 
Ein ImageList-Objekt repräsentiert eine Sammlung von Bildern, die in einem Array verwaltet werden. Alle Bilder sind dabei von gleicher Größe und gleichem Farbformat. Fügen Sie einer ImageList Bilder unterschiedlicher Größe und/oder unterschiedlicher Farbtiefe hinzu, werden diese automatisch auf die standardmäßige Größe von 16 x 16 Pixel mit einer Farbtiefe von 8 Bit (= 256 verschiedene Farben) skaliert.
Auch wenn viele Steuerelemente des .NET Frameworks 1.0/1.1, die ihre Bildchen aus einer ImageList bezogen, durch neue ersetzt worden sind, die keine ImageList voraussetzen, es gibt immer noch einige Steuerelemente, die sich ihre Informationen aus diesem Control besorgen. Im Abschnitt 19.12 werde ich Ihnen das Registerkartensteuerelement vorstellen, das zu diesen Controls gehört.
19.11.1 Die Eigenschaften der Klasse »ImageList«
 
Die Liste der Eigenschaften ist nicht sehr lang.
Tabelle 19.9 Eigenschaften eines »ImageList«-Objekts
Eigenschaft
|
Beschreibung
|
ColorDepth
|
Ruft die Farbtiefe der Symbolleiste ab.
|
Images
|
Ruft die Bildauflistung vom Typ ImageList.ImageCollection der Symbolleiste ab.
|
ImageSize
|
Ruft die Größe der Bilder in der Symbolleiste ab oder legt diese fest.
|
TransparentColor
|
Ruft die als transparent zu behandelnde Farbe ab oder legt diese fest.
|
Ohne Zweifel dürfte die wichtigste Eigenschaft diejenige sein, die eine Referenz auf das Array zurückliefert. Sehen wir uns deshalb zuerst die Definition der Eigenschaft Images an:
public ImageList.ImageCollection Images {get;}
|
Das Array, das sich für die Verwaltung der Bilder verantwortlich zeichnet, ist vom Typ ImageList.ImageCollection. Die Bezeichnung deutet es bereits an, dass die Klasse ImageCollection innerhalb der Klasse ImageList definiert ist. Deshalb kann auch niemals direkt auf die interne Klasse zugegriffen werden, sondern immer nur über den »Umweg« der Eigenschaft Images.
Per Default sind alle Bilder in der Liste von der Größe 16 x 16 Pixel, die jedoch mit ImageSize bis zu einer Maximalgröße von 256 x 256 vergrößert werden können. Diese Eigenschaft ist vom Typ Size. Geben Sie die von Ihnen gewünschte Größe entweder im Eigenschaftsfenster ein, oder legen Sie die Größe per Programmcode mit
this.imageList1.ImageSize = new Size(33, 33);
|
fest.
19.11.2 Die Bildliste füllen
 
Sie können natürlich die Bildchen mittels Programmcode der ImageList hinzufügen, wenn Sie die Liste zur Laufzeit dynamisch erzeugen müssen. Das ist nicht schwierig, weil Ihnen alle bekannten Eigenschaften und Methoden der ArrayList zur Verfügung stehen. Effizienter ist aber, die Hilfe von Visual Studio in Anspruch zu nehmen. Markieren Sie dazu die Eigenschaft Images im Eigenschaftsfenster, und klicken Sie auf die Schaltfläche in der Wertespalte. Daraufhin öffnet sich der in der folgenden Abbildung gezeigte Dialog.
Über die Schaltfläche Hinzufügen erhalten Sie den Standarddialog zum Öffnen von Dateien, über den Sie zu der Bilddatei navigieren können, die Sie in die ImageList aufnehmen wollen; mit Entfernen wird die Referenz wieder entfernt. Markieren Sie in der Liste der Bilddateien eines der Elemente, werden im rechten Teil des Dialogs die Eigenschaften des Bildes angezeigt. Die beiden Schaltflächen mit dem Pfeil nach oben bzw. unten dienen der Verschiebung der Bilddateireferenzen in der Auflistung. Auf diese Weise können Sie eine Indizierung erreichen, die möglicherweise der späteren Indizierung der Schaltflächen in der Symbolleiste entspricht.
 Hier klicken, um das Bild zu vergrößern
Abbildung 19.13 Der Dialog zum Hinzufügen von Bildchen |