Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Eigenschaften des FontDialog via PropertyGrid ändern
C4RL0
myCSharp.de - Member

Avatar #avatar-3444.png


Dabei seit:
Beiträge: 88
Herkunft: Osnabrück

Themenstarter:

Eigenschaften des FontDialog via PropertyGrid ändern

beantworten | zitieren | melden

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."
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4029

beantworten | zitieren | melden

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).

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Th69 am .
private Nachricht | Beiträge des Benutzers
C4RL0
myCSharp.de - Member

Avatar #avatar-3444.png


Dabei seit:
Beiträge: 88
Herkunft: Osnabrück

Themenstarter:

beantworten | zitieren | melden

Zitat von Th69
... 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."
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4029

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
C4RL0
myCSharp.de - Member

Avatar #avatar-3444.png


Dabei seit:
Beiträge: 88
Herkunft: Osnabrück

Themenstarter:

beantworten | zitieren | melden

Ich denke, letzteres werde ich dann wohl umsetzen.
Merci für Deine Hilfe.
_____________________
Gruß
Carlo

"Palabras que no coinciden con hechos no valen nada."
private Nachricht | Beiträge des Benutzers