Laden...

Systemfarben ändern (nur für eigene Anwendung)

Erstellt von Mighty Panther vor 15 Jahren Letzter Beitrag vor 15 Jahren 2.270 Views
Mighty Panther Themenstarter:in
22 Beiträge seit 2008
vor 15 Jahren
Systemfarben ändern (nur für eigene Anwendung)

Hallo liebe Gemeinde!

Ich habe in meiner Anwendung viele verschiedene Steuerelement, deren BackColor z.B. Farbe=Control ist.
(d.h. die vom Benutzer für sein Windows festgelegte Systemfarbe für die Schaltfläche)

Ich erhoffe mir, dass ich alle Steuerelemente deren Hintergrundfarbe 'Control' ist, mit vielleicht nur einer Zeile Code die Farbe verändern kann.

Sonst müsste ich ja für jedes Steuerelementdas so angehen.
myButton1.BackColor = blau;
myButton2.BackColor = blau;
myCheckBox1.BackColor = blau;
usw.

THX & LG
Mighty

Gelöschter Account
vor 15 Jahren

die systemfarben gelten (wie der name schon impliziert) systemweit und eine änderung dieser, würde sich in jeder anwendung, die diese benutzt, bemerkbar machen.

mach dir doch eine klasse, die einen satz farben definiert, wo sich deine controls bedienen können. so kannst du dann zentral ändern.

68 Beiträge seit 2008
vor 15 Jahren

Leite dir doch einfach deine Steuerelemente ab und überschreib die Standardfarben (wenn es denn das ist, was du möchtest).

z.B.

    public class MyButton : Button
    {
        public override Color BackColor
        {
            get
            {
                return Color.Blue;
            }
        }
    }
946 Beiträge seit 2008
vor 15 Jahren

@pogo

Das gefällt mir nicht.
Man kann die Farben beliebig ändern und diese werde auch genutzt, aber es wird nur Color.Blue zurückgegeben.

Aber selbst, wenn es richtig wäre, fände ich eine Helper-Klasse besser.
In Pseudocode etwa so:


// Im Konstruktor
foreach(Control c in this.Controls
    AppColors.SetColor(c);

Ev. Kann das auch in einer abgeleiteten Form so stehen.

mfg
SeeQuark

4.506 Beiträge seit 2004
vor 15 Jahren

Hallo pogo,

Leite dir doch einfach deine Steuerelemente ab und überschreib die Standardfarben (wenn es denn das ist, was du möchtest).

Das ist in der Tat eine sehr starke Einschränkung eines Controls. Wenn ich ein Standardverhalten haben will Ok, aber wenn ich dann für irgendein Control in einem speziellen Fall dann kein Blau haben will, dann geht das mit Deiner Variante nicht mehr.

Also ich präferiere hier auch JAck30lena's Vorschlag einfach ein Set von Farben zu definieren und sich daraus zu bedienen.

(und ja es ist so aufwändig, so dass man das für jedes Control angeben muss)

Grüße
Norman-Timo

A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”