WinForms: Kako dodati više tema svojoj aplikaciji

WinForms: Kako dodati više tema svojoj aplikaciji

Uobičajeno je da moderne aplikacije imaju opciju prebacivanja između različitih tema. Na primjer, neke vam aplikacije omogućuju izmjenu između svijetle i tamne teme, dok druge mogu imati više izbora tema.





što je bixby na mom samsung telefonu

Windows Forms je okvir korisničkog sučelja koji vam omogućuje stvaranje aplikacija za radnu površinu. Teme možete implementirati u Windows obrazac aplikaciji stvaranjem gumba koji se mogu odabrati za svaku temu.





MAKEUSEOF VIDEO DANA

Kada korisnik odabere temu, možete promijeniti boju pozadine ili svojstva boje teksta svakog elementa kako bi odgovarala odabranoj temi.





Kako postaviti projekt Windows Form

Najprije izradite novu Windows aplikaciju obrasca. Napunite novi projekt nekim osnovnim kontrolama, kao što su gumbi i oznake.

  1. Stvoriti novu aplikaciju Windows Forms u Visual Studiju.
  2. U novom projektu koristite okvir s alatima za traženje kontrole gumba.   Prozor svojstava za gumb u aplikaciji Winforms
  3. Odaberite upravljanje gumbom i povucite ga na platno. Dodajte ukupno tri kontrole gumba.   Prozor svojstava za gumb u aplikaciji Winforms
  4. Pomoću okvira s alatima kliknite i povucite a kontrola oznake na platno. Stavite naljepnicu ispod gumba.   Prozor svojstava za gumb u aplikaciji Winforms
  5. Stilizirajte gumbe i oznake pomoću prozora svojstava. Promijenite svojstva u sljedeće:
    button1 Veličina 580, 200
    FlatStyle Ravan
    Tekst Korisnici
    gumb2 Veličina 580, 100
    FlatStyle Ravan
    Tekst Računi
    gumb3 Veličina 580, 100
    FlatStyle Ravan
    Tekst Dozvole
    oznaka1 Tekst Autorska prava 2022

Kako stvoriti gumb za postavke i popis tema

Kako bi jednostavan izbornik tema funkcionirao, stvorite više gumba koji će predstavljati svaku temu. Aplikacija će uključivati ​​tri teme, 'Svijetlu' temu, 'Prirodu' temu i 'Tamnu' temu.



  1. Dodajte još jednu kontrolu gumba na platno da predstavlja gumb postavki (ili 'Teme').
  2. Promijenite svojstva ovog gumba u sljedeće:
    Ime btnThemeSettings
    FlatStyle Ravan
    Veličina 200, 120
    Tekst Teme
  3. Povucite još tri gumba na platno. Ovi gumbi će predstavljati tri različite teme. Promijenite svojstva za svaki od gumba na sljedeće:
    1. gumb Ime btnLightTheme
    BackColor WhiteSmoke
    Veličina 200, 80
    FlatStyle Ravan
    Tekst Svjetlo
    Vidljivo lažno
    2. gumb Ime btnNatureTheme
    BackColor DarkSeaGreen
    Veličina 200, 80
    FlatStyle Ravan
    Tekst Priroda
    Vidljivo lažno
    3. gumb Ime btnDarkTheme
    BackColor DimGray
    ForeColor Bijela
    Veličina 200, 80
    FlatStyle Ravan
    Tekst tamno
    Vidljivo lažno
  4. Dvaput kliknite na Teme dugme. Ovo će stvoriti metodu za rukovanje događajem 'on click'. Metoda će se pokrenuti kada korisnik klikne na ovaj gumb.
  5. Prema zadanim postavkama teme 'Svijetlo', 'Priroda' i 'Tamno' neće biti vidljive. Unutar funkcije dodajte funkciju za promjenu vidljivosti gumba na prikaz ili skrivanje.
    private void btnThemeSettings_Click(object sender, EventArgs e) 
    {
    btnNatureTheme.Visible = !btnNatureTheme.Visible;
    btnLightTheme.Visible = !btnLightTheme.Visible;
    btnDarkTheme.Visible = !btnDarkTheme.Visible;
    }
  6. Pokrenite aplikaciju klikom na zeleni gumb za reprodukciju na vrhu prozora Visual Studio.
  7. Tijekom izvođenja, aplikacija će prema zadanim postavkama sakriti gumbe za svaku od tri teme.
  8. Klikni na Teme gumb za prebacivanje tema za prikaz. Možete nastaviti pritiskati Teme gumb za promjenu njihove vidljivosti.

Kako upravljati svojim temama

Stvorite rječnike za svaku temu kako biste pohranili različite boje koje će koristiti. To je tako da sve svoje boje teme pohranjujete na jedno mjesto, u slučaju da ih trebate upotrijebiti više puta. Također olakšava ako u budućnosti želite ažurirati temu novim bojama.

  1. Na vrhu zadanog Form1.cs C# datoteku i unutar Oblik klase, kreirajte globalni enum. Ovaj popis će pohraniti različite vrste boja koje ćete koristiti u temi.
    enum ThemeColor 
    {
    Primary,
    Secondary,
    Tertiary,
    Text
    }
  2. Ispod, deklarirajte tri globalna rječnika, po jedan za svaku od tri teme. Možete pročitati više o rječnicima ako niste upoznati s načinom korištenja a rječnik u C# .
    Dictionary<ThemeColor, Color> Light = new Dictionary<ThemeColor, Color>(); 
    Dictionary<ThemeColor, Color> Nature = new Dictionary<ThemeColor, Color>();
    Dictionary<ThemeColor, Color> Dark = new Dictionary<ThemeColor, Color>();
  3. Unutar konstruktora inicijalizirajte rječnike. Dodajte vrijednosti za različite boje koje će svaka tema koristiti.
    public Form1() 
    {
    InitializeComponent();
    // Add dictionaries here
    Light = new Dictionary<ThemeColor, Color>() {
    { ThemeColor.Primary, Color.WhiteSmoke },
    { ThemeColor.Secondary, Color.Silver },
    { ThemeColor.Tertiary, Color.White },
    { ThemeColor.Text, Color.Black }
    };
    Nature = new Dictionary<ThemeColor, Color>() {
    { ThemeColor.Primary, Color.DarkSeaGreen },
    { ThemeColor.Secondary, Color.AliceBlue },
    { ThemeColor.Tertiary, Color.Honeydew },
    { ThemeColor.Text, Color.Black }
    };
    Dark = new Dictionary<ThemeColor, Color>() {
    { ThemeColor.Primary, Color.DimGray },
    { ThemeColor.Secondary, Color.DimGray },
    { ThemeColor.Tertiary, Color.Black },
    { ThemeColor.Text, Color.White }
    };
    }

Kako promijeniti temu

Stvorite funkcije za upravljanje temom aplikacije. Ove funkcije će promijeniti boju pozadine ili boju teksta elemenata korisničkog sučelja na platnu.





  1. Napravite novu funkciju tzv Promijenitemu() . Funkcija će uzeti boje za temu kao argumente.
  2. Unutar funkcije promijenite svojstva boje pozadine elemenata korisničkog sučelja. Nove boje pozadine koristit će boje za odabranu temu.
    private void ChangeTheme(Color primaryColor, Color secondaryColor, Color tertiaryColor) 
    {
    // Change background color of buttons
    btnThemeSettings.BackColor = primaryColor;
    button1.BackColor = primaryColor;
    button2.BackColor = secondaryColor;
    button3.BackColor = secondaryColor;
    this.BackColor = tertiaryColor;
    }
  3. Napravite novu funkciju tzv Promijeni boju teksta() . Ovo možete koristiti za promjenu boje teksta između tamne i svijetle. Time se osigurava da će tekst na tamnoj pozadini i dalje biti čitljiv.
    private void ChangeTextColor(Color textColor) 
    {
    // Change color of text
    button1.ForeColor = textColor;
    button2.ForeColor = textColor;
    button3.ForeColor = textColor;
    label1.ForeColor = textColor;
    btnThemeSettings.ForeColor = textColor;
    }
  4. U dizajneru dvaput kliknite na kontrolu gumba 'Svjetlo'. Ovo će otvoriti datoteku iza koda i generirati rukovatelj događajem kada korisnik klikne na gumb.
  5. Unutar rukovatelja događajima koristite Promijenitemu() i Promijeni boju teksta() funkcije. Unesite boje koje tema koristi. Ove boje možete preuzeti iz rječnika tema 'Light'.
    private void btnLightTheme_Click(object sender, EventArgs e) 
    {
    ChangeTheme(Light[ThemeColor.Primary], Light[ThemeColor.Secondary], Light[ThemeColor.Tertiary]);
    ChangeTextColor(Light[ThemeColor.Text]);
    }
  6. Vratite se na dizajner i kliknite na gumbe 'Priroda' i 'Tamno'. Koristiti Promijenitemu() i Promijeni boju teksta() funkcionira i u njihovim rukovateljima događajima.
    private void btnNatureTheme_Click(object sender, EventArgs e) 
    {
    ChangeTheme(Nature[ThemeColor.Primary], Nature[ThemeColor.Secondary], Nature[ThemeColor.Tertiary]);
    ChangeTextColor(Nature[ThemeColor.Text]);
    }
    private void btnDarkTheme_Click(object sender, EventArgs e)
    {
    ChangeTheme(Dark[ThemeColor.Primary], Dark[ThemeColor.Secondary], Dark[ThemeColor.Tertiary]);
    ChangeTextColor(Dark[ThemeColor.Text]);
    }
  7. Prema zadanim postavkama, tema bi trebala biti postavljena na 'Svijetlu' temu kada korisnik prvi put otvori aplikaciju. U konstruktoru, ispod rječnika, koristite Promijenitemu() i Promijeni boju teksta() funkcije.
    ChangeTheme(Light[ThemeColor.Primary], Light[ThemeColor.Secondary], Light[ThemeColor.Tertiary]); 
    ChangeTextColor(Light[ThemeColor.Text]);
  8. Pokrenite aplikaciju klikom na zeleni gumb za reprodukciju na vrhu prozora Visual Studio.
  9. Prema zadanim postavkama, aplikacija koristi temu 'Light' i primjenjuje shemu sive boje na kontrole korisničkog sučelja. Uključite gumb tema da biste vidjeli popis tema.
  10. Kliknite na temu Priroda.
  11. Kliknite na tamnu temu.

Stvaranje aplikacija pomoću Windows Forms

Mnoge aplikacije omogućuju korisniku prebacivanje između više tema. Možete dodati teme aplikaciji Windows Forms stvaranjem opcija koje korisnik može odabrati.

kako odrediti Windows 10 na matičnoj ploči

Kada korisnik klikne na temu, možete promijeniti boju pozadine, tekst ili bilo koja druga svojstva da odgovaraju bojama koje se koriste u odabranoj temi.





Boje za svaku od tema koriste ugrađene boje Visual Studija. Morat ćete koristiti odgovarajuću shemu boja kako biste korisnicima pružili bolje iskustvo. Možete saznati više o različitim načinima na koje možete odabrati shemu boja za svoju aplikaciju.