Hallo zusammen,
ich habe in einer Form ein PropertyGrid in einer Form untergebracht, welches ich auszugsweise wir folgt fülle:
class AttributesForPropertyGrid
{
[Browsable(true)]
[ReadOnly(false)]
[Description("Konfiguration des Headers")]
[Category("Header")]
[DisplayName("HeaderFont")]
public Font HeaderFont { get; set; } = SystemFonts.DefaultFont;
}
Nun meine Frage dazu:
Wie bekomme ich in dem im PropertyGrid aufpoppenden FontDialog die "ShowColor" Eigenschaft aktiviert, damit ich dort die Schriftfarbe wählen kann?
Gruß
Carlo
"Palabras que no coinciden con hechos no valen nada."
Laut den Sourcen von System.Drawing.Design.FontEditor
(mit ILSpy nachgeschaut) wird dort explizit die Eigenschaft ShowColor
auf false
gesetzt.
Evtl. klappt es, wenn du einen eigenen FontEditor
(von UITypeEditor abgeleitet) implementierst und das EditorAttribute
setzt:
[Editor("MyFontEditor", typeof(UITypeEditor))]
PS: Ich sende dir den Code per PM (da ich nicht weiß, ob ich diesen einfach hier veröffentlichen darf).
... Ich sende dir den Code per PM ...
Yeah, it works. Soweit hab ich ihn zum leben erweckt und mir wird jetzt im FontDialog auch die Option zur Farbauswahl geboten. (war etwas frickelig mit dem Editornamen, da er wohl voll qualifiziert sein muss, deshalb hab ich diesen via
[Editor(typeof(FontEditor), typeof(UITypeEditor))]
geholt. Danke dafür!
Nun folgt gleich die nächste Hürde ... nachdem ich die Schriftfarbe ausgewählt habe, wie lese ich sie aus?
Ich habe ja im ganzen Objekt meiner o.g. Klasse keine derartige Eigenschaft.
Gruß
Carlo
"Palabras que no coinciden con hechos no valen nada."
Da fällt mir nur ein, daß du eine eigene Klasse mit den zwei Eigenschaften Font
und Color
erstellst und dafür dann den eigenen FontEditor zuweist.
Ich hatte vergessen, daß die Farbe ja nicht im Font
-Objekt gespeichert wird, sondern man beim Zeichnen ja extra ein Pen
(bzw. Brush
) zusätzlich angeben muß.
Alternativ kannst du aber auch einfach eine eigene Eigenschaft Color
in der Klasse AttributesForPropertyGrid
erstellen und dort wird dann der ColorDialog
aufgerufen.
Ich denke, letzteres werde ich dann wohl umsetzen.
Merci für Deine Hilfe.
Gruß
Carlo
"Palabras que no coinciden con hechos no valen nada."