Tema in C#
Tutte le piattaforme supportate da .NET MAUI forniscono supporto per le modalità chiaro e scuro. È essenziale considerare questo aspetto nelle progettazioni di applicazioni per offrire l'esperienza migliore per l'utente finale. Il pacchetto di markup C# consente di definire i valori delle proprietà che verranno scambiati in base al tema corrente dei sistemi (vedere la documentazione Microsoft).
Esistono due modi per definire i valori del tema dell'app:
1. In uno specifico BindableObject
Quando si compila un'interfaccia utente di un'applicazione con C# è possibile definire i valori per la modalità chiara e scura con il AppThemeBinding
metodo di estensione.
Nell'esempio seguente viene illustrato come creare un Label
oggetto con quanto segue:
- Impostare la
Text
proprietà per visualizzare "Modalità luce" quando il sistema è in modalità chiara e "Modalità scura" quando l'applicazione è in modalità scura. - Impostare la
TextColor
proprietà suColors.Black
quando il sistema è in modalità chiara eColors.White
quando l'applicazione è in modalità scura.
new Label()
.AppThemeBinding(Label.TextProperty, "Light Mode", "Dark Mode")
.AppThemeColorBinding(Label.TextColorProperty, Colors.Black, Colors.White);
2. Su un Style
In genere è consigliabile creare un oggetto Style
che può essere applicato a più istanze di un controllo e quindi semplificare il codice necessario per compilare l'interfaccia utente di un'applicazione. A questo scopo sono AppThemeBinding
disponibili metodi nella Style<T>
classe .
Nell'esempio seguente viene illustrato come creare un oggetto per un Style
Label
con lo stesso comportamento dell'esempio precedente:
- Impostare la
Text
proprietà per visualizzare "Modalità luce" quando il sistema è in modalità chiara e "Modalità scura" quando l'applicazione è in modalità scura. - Impostare la
TextColor
proprietà suColors.Black
quando il sistema è in modalità chiara eColors.White
quando l'applicazione è in modalità scura.
var labelStyle = new Style<Label>()
.AddAppThemeBinding(Label.TextProperty, "Light Mode", "Dark Mode")
.AddAppThemeBinding(Label.TextColorProperty, Colors.Black, Colors.White);
new Label
{
Style = labelStyle
};
.NET MAUI Community Toolkit