Tematisering i C#

Alla plattformar som stöds av .NET MAUI ger stöd för ljust och mörkt läge. Det är viktigt att ta med detta i programdesignen för att ge slutanvändaren bästa möjliga upplevelse. C# Markup-paketet ger möjlighet att definiera egenskapsvärden som ska växlas baserat på systemets aktuella tema (se dokumentationen Microsoft).

Det finns två sätt att definiera apptemavärden:

1. På en viss BindableObject

När du skapar ett programs användargränssnitt med C# är det möjligt att definiera värdena för ljust och mörkt läge med AppThemeBinding tilläggsmetoden.

I följande exempel visas hur du skapar en Label med följande:

  1. Ställ in egenskapen Text för att visa "Ljust läge" när systemet är i ljust läge och "Mörkt läge" när programmet är i mörkt läge.
  2. Ange egenskapen TextColor till Colors.Black när systemet är i ljust läge och Colors.White när programmet är i mörkt läge.
new Label()
    .AppThemeBinding(Label.TextProperty, "Light Mode", "Dark Mode")
    .AppThemeColorBinding(Label.TextColorProperty, Colors.Black, Colors.White);

2. På en Style

Vi rekommenderar vanligtvis att du skapar en Style som kan tillämpas på flera instanser av en kontroll och därför förenkla den kod som krävs för att skapa ett programs användargränssnitt. För detta ändamål finns det metoder tillgängliga i Style<T>-klassen.

I följande exempel visas hur du skapar en Style för en Label med samma beteende som i föregående exempel:

  1. Ställ in egenskapen Text för att visa "Ljust läge" när systemet är i ljust läge och "Mörkt läge" när programmet är i mörkt läge.
  2. Ange egenskapen TextColor till Colors.Black när systemet är i ljust läge och Colors.White när programmet är i mörkt läge.
var labelStyle = new Style<Label>()
    .AddAppThemeBinding(Label.TextProperty, "Light Mode", "Dark Mode")
    .AddAppThemeBinding(Label.TextColorProperty, Colors.Black, Colors.White);

new Label
{
    Style = labelStyle
};