Keresés

Új hozzászólás Aktív témák

  • Keem1

    veterán

    válasz joysefke #9780 üzenetére

    Jó irányban gondolkodsz :)
    Én is már túl egy sörön, szóval.. :U

    "anélkül, hogy tudnám, hogy milyen frameworkben"
    .NET 5.0

    Találtam a neten egy ötletadó samplet:
    public void ChangeTheme(ColorScheme scheme, Control.ControlCollection container)
    {
        foreach (Control component in container)
        {
            if (component is Panel)
            {
                ChangeTheme(scheme, component.Controls);
                component.BackColor = scheme.PanelBG;
                component.ForeColor = scheme.PanelFG;
            }
            else if (component is Button)
            {
                component.BackColor = scheme.ButtonBG;
                component.ForeColor = scheme.ButtonFG;
            }
            else if (component is TextBox)
            {
                component.BackColor = scheme.TextBoxBG;
                component.ForeColor = scheme.TextBoxFG;
            }
            ...
        }
    }

    Ami pont jól jönne ahhoz, amit csinálok: a Windows 10 light/dark módjának implementálására.
    Ahogy ezt a kódot néztem, igazából elég lenne egyszer a light színeket felvinni, aztán abból örököltetni a darkot (hisz a light a default), és nem hasalna el a motyó akkor se, ha közben bekerülne a light-ba egy új szín, de még a darkba nem (hisz akkor csak az eredeti maradna).

    De ott agyalok, hogy a ColorScheme osztályt egyelőre nem tudom implementálni, mert nem tudom neki megmondani hogy az light és dark is lehet igazából.
    Aztán arra gondoltam, hogy legyen egy static class, de az meg azért nem jó, mert az nem lehet metódus paramétere.
    Ez a ColorScheme egy olyan osztály lehet, amiben benne van a dark és a light is, és ezeknek csak propertyjei vannak.

    Lehet innom kéne még egy sört és ezen csak holnap agyalni. :U

Új hozzászólás Aktív témák

Hirdetés