Entwickler-Ecke
Basistechnologien - Textart ändern
Max064 - Fr 13.08.10 13:10
Titel: Textart ändern
Hi,
ich habe ein (sicherlich leichtes) Problem, aber ich bekomme es irgendwie nicht hin:
Ich habe ein List box, in die ich alle möglichen FontFamily reinschreibe:
C#-Quelltext
1: 2: 3: 4:
| foreach (FontFamily oneFontFamily in FontFamily.Families) { _listboxFonts.Items.Add(oneFontFamily.Name); } |
Nun möchte ich einen Text adden, der die in der listbox ausgewählte FontFamily besitzt. Doch wie kann ich die Listbox auslesen und da eine FontFamily daraus machen?
In anderen Worten: Wenn ich die Textbox auslese, erhalte ich ja einen String. Wie kann ich den in eine FontFamily wandeln?
lg Max
bakachan - Fr 13.08.10 13:17
Da gibt es wie immer mehrere Möglichkeiten.
Ich würde einfach die nochmal eine Schleife wie beim hinzufügen machen, die Namen vergleichen und wenn der Name passt die FontFamily setzen.
(Schau aber mal nach ob auch wirklich alle eindeutig sind und das sich die Auflistung zwischen hinzufügen und auswahl der ListBox nicht ändert.)
Trashkid2000 - Fr 13.08.10 17:02
Oder Du erstellst Dir eine Klasse, die als Property die FontFamily aufnimmt, und in einer überschriebenen ToString()-Methode den Namen der Property zurück gibt. Diese wird auch in der ListBox als Anzeige verwendet.
Klasse ListBoxItem
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| public class ListBoxItem { public FontFamily FontFamily { get; private set; }
public ListBoxItem(FontFamily fontFamily) { this.FontFamily = fontFamily; }
public override string ToString() { return this.FontFamily.Name; } } |
Und damm kannst Du die FontFamilies der ListBox hinzufügen
C#-Quelltext
1: 2: 3: 4:
| foreach (FontFamily oneFontFamily in FontFamily.Families) { _listboxFonts.Items.Add(new ListBoxItem(oneFontFamily)); } |
Und auslesen der Family
C#-Quelltext
1:
| FontFamily family = (_listboxFonts.SelectedItem as ListBoxItem).FontFamily; |
Mit der Schleife und dem vergleichen geht natürlich auch, aber so finde ich es ehrlich gesagt schöner.
Und schneller. Angenommen, Du hättest eine Liste von irgendws mit 2000 Einträgen. Und Du hast das letzte ausgewählt.
Sollen nun 1999 Einräge durchgelaufen und mit einer Stringoperation verglichen werden?
Gruss, Marko
Max064 - Do 19.08.10 07:24
Super genau sowas habe ich gesucht! Vielen Dank!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 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!