WinForms: meerdere thema's aan uw toepassing toevoegen

WinForms: meerdere thema's aan uw toepassing toevoegen

Het is gebruikelijk dat moderne applicaties een optie hebben om tussen verschillende thema's te schakelen. Met sommige applicaties kun je bijvoorbeeld wisselen tussen een licht thema of een donker thema, terwijl andere meer themakeuzes hebben.





Windows Forms is een UI-framework waarmee u desktoptoepassingen kunt maken. U kunt thema's in een Windows-formulierapp implementeren door voor elk thema selecteerbare knoppen te maken.





MAKEUSEVAN VIDEO VAN DE DAG

Wanneer de gebruiker een thema selecteert, kunt u de eigenschappen van de achtergrondkleur of tekstkleur van elk element aanpassen aan het geselecteerde thema.





waar is de zaklamp op deze telefoon

Hoe het Windows Form-project in te stellen

Maak eerst een nieuwe Windows-formulier-app. Vul het nieuwe project met enkele basisbesturingselementen, zoals knoppen en labels.

  1. Maak een nieuwe Windows Forms-toepassing in Visuele Studio.
  2. Gebruik in het nieuwe project de toolbox om te zoeken naar een knopbesturingselement.   Eigenschappenvenster voor knop in Winforms-app
  3. Selecteer de knopbediening en sleep het naar het canvas. Voeg in totaal drie knoppen toe.   Eigenschappenvenster voor knop in Winforms-app
  4. Gebruik de toolbox, klik en sleep a label controle op het doek. Plaats het label onder de knopen.   Eigenschappenvenster voor knop in Winforms-app
  5. Stijl de knoppen en labels met behulp van het eigenschappenvenster. Wijzig de eigenschappen in het volgende:
    knop1 Maat 580, 200
    Platte Stijl Vlak
    Tekst Gebruikers
    knop2 Maat 580, 100
    Platte Stijl Vlak
    Tekst rekeningen
    knop3 Maat 580, 100
    Platte Stijl Vlak
    Tekst Rechten
    label1 Tekst Auteursrecht 2022

De instellingenknop en de lijst met thema's maken

Om een ​​eenvoudig themamenu te laten werken, maakt u meerdere knoppen om elk thema weer te geven. De applicatie zal drie thema's bevatten, een 'Licht' thema, een 'Natuur' thema en een 'Donker' thema.



hoe muziek te vervagen in garageband
  1. Voeg nog een knopbesturingselement toe aan het canvas om de instellingen (of 'Thema's')-knop weer te geven.
  2. Wijzig de eigenschappen van deze knop in het volgende:
    Naam btnThemaInstellingen
    Platte Stijl Vlak
    Maat 200, 120
    Tekst Thema's
  3. Sleep nog drie knoppen naar het canvas. Deze knoppen vertegenwoordigen de drie verschillende thema's. Wijzig de eigenschappen voor elk van de knoppen in het volgende:
    1e knop Naam btnLichtThema
    TerugKleur Witte rook
    Maat 200, 80
    Platte Stijl Vlak
    Tekst Licht
    Zichtbaar niet waar
    2e knop Naam btnNatuurThema
    TerugKleur DonkerZeeGroen
    Maat 200, 80
    Platte Stijl Vlak
    Tekst Natuur
    Zichtbaar niet waar
    3e knop Naam btnDarkThema
    TerugKleur DimGray
    Voorgrond-kleur Wit
    Maat 200, 80
    Platte Stijl Vlak
    Tekst Donker
    Zichtbaar niet waar
  4. Dubbelklik op de Thema's knop. Dit zal een methode creëren om de 'on click' -gebeurtenis af te handelen. De methode wordt uitgevoerd wanneer de gebruiker op deze knop klikt.
  5. Standaard zijn de thema's 'Licht', 'Natuur' en 'Donker' niet zichtbaar. Voeg in de functie de functionaliteit toe om de zichtbaarheid van de knoppen te wijzigen in tonen of verbergen.
    private void btnThemeSettings_Click(object sender, EventArgs e) 
    {
    btnNatureTheme.Visible = !btnNatureTheme.Visible;
    btnLightTheme.Visible = !btnLightTheme.Visible;
    btnDarkTheme.Visible = !btnDarkTheme.Visible;
    }
  6. Start de applicatie door op de groene afspeelknop boven aan het Visual Studio-venster te klikken.
  7. Tijdens runtime verbergt de applicatie standaard de knoppen voor elk van de drie thema's.
  8. Klik op de Thema's knop om te schakelen tussen de thema's die moeten worden weergegeven. U kunt blijven drukken op de Thema's knop om hun zichtbaarheid te wijzigen.

Hoe u uw thema's beheert

Maak woordenboeken voor elk thema om de verschillende kleuren op te slaan die het zal gebruiken. Dit is zodat je al je themakleuren op één plek opslaat, voor het geval je ze meerdere keren moet gebruiken. Het maakt het ook gemakkelijker als u in de toekomst een thema met nieuwe kleuren wilt bijwerken.

  1. Bovenaan de standaard Form1.cs C#-bestand en in de Het formulier class, maak een globale opsomming. In deze opsomming worden de verschillende soorten kleuren opgeslagen die u in een thema zult gebruiken.
    enum ThemeColor 
    {
    Primary,
    Secondary,
    Tertiary,
    Text
    }
  2. Verklaar hieronder drie globale woordenboeken, één voor elk van de drie thema's. U kunt meer lezen over Woordenboeken als u niet bekend bent met het gebruik van a woordenboek in 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. Initialiseer de woordenboeken in de constructor. Voeg waarden toe voor de verschillende kleuren die elk thema zal gebruiken.
    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 }
    };
    }

Hoe het thema te veranderen

Maak functies om het thema van de applicatie te beheren. Deze functies veranderen de achtergrondkleur of tekstkleur van de UI-elementen op het canvas.





  1. Maak een nieuwe functie met de naam Thema veranderen() . De functie neemt de kleuren voor een thema als argumenten.
  2. Wijzig in de functie de eigenschappen van de achtergrondkleur van de UI-elementen. De nieuwe achtergrondkleuren gebruiken kleuren voor het geselecteerde thema.
    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. Maak een nieuwe functie met de naam WijzigTextColor() . U kunt dit gebruiken om de kleur van de tekst te veranderen tussen donker en licht. Dit is om ervoor te zorgen dat tekst op een donkere achtergrond nog steeds leesbaar is.
    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. Dubbelklik vanuit de ontwerper op de knop 'Licht'. Dit opent het code-behind-bestand en genereert een gebeurtenishandler voor wanneer de gebruiker op de knop klikt.
  5. Gebruik in de gebeurtenishandler de Thema veranderen() en WijzigTextColor() functies. Voer de kleuren in die het thema gebruikt. U kunt deze kleuren uit het themawoordenboek 'Licht' halen.
    private void btnLightTheme_Click(object sender, EventArgs e) 
    {
    ChangeTheme(Light[ThemeColor.Primary], Light[ThemeColor.Secondary], Light[ThemeColor.Tertiary]);
    ChangeTextColor(Light[ThemeColor.Text]);
    }
  6. Ga terug naar de ontwerper en klik op de knoppen 'Natuur' en 'Donker'. Gebruik de Thema veranderen() en WijzigTextColor() functioneert ook in hun gebeurtenishandlers.
    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. Standaard moet het thema worden ingesteld op het thema 'Licht' wanneer de gebruiker de app voor het eerst opent. Gebruik in de constructor, onder de woordenboeken, de Thema veranderen() en WijzigTextColor() functies.
    ChangeTheme(Light[ThemeColor.Primary], Light[ThemeColor.Secondary], Light[ThemeColor.Tertiary]); 
    ChangeTextColor(Light[ThemeColor.Text]);
  8. Start de applicatie door op de groene afspeelknop boven aan het Visual Studio-venster te klikken.
  9. Standaard gebruikt de applicatie het thema 'Licht' en past het grijze kleurenschema toe op de UI-bedieningselementen. Schakel de themaknop in om de lijst met thema's te bekijken.
  10. Klik op het thema Natuur.
  11. Klik op het donkere thema.

Toepassingen maken met Windows Forms

Veel applicaties stellen de gebruiker in staat om te schakelen tussen meerdere thema's. U kunt thema's toevoegen aan een Windows Forms-toepassing door opties te maken die de gebruiker kan selecteren.

Wanneer de gebruiker op een thema klikt, kunt u de achtergrondkleur, tekst of andere eigenschappen aanpassen aan de kleuren die in het geselecteerde thema worden gebruikt.





kun je zien wie naar jou zoekt op google

De kleuren voor elk van de thema's gebruiken de ingebouwde kleuren van Visual Studio. U moet een juist kleurenschema gebruiken om de gebruikers een betere ervaring te bieden. U kunt meer leren over de verschillende manieren waarop u een kleurenschema voor uw app kunt kiezen.