Stil<T>

Style<T> innehåller en serie fluent-tilläggsmetoder som stöder konfiguration av Microsoft.Maui.Controls.Style.

Konstruktörer

Style<T> innehåller följande konstruktorer:

public Style(BindableProperty property, object value);
public Style(params (BindableProperty Property, object Value)[] setters);

Dessa konstruktorer kan användas för att initiera Style<T> och tilldela den till en Microsoft.Maui.Controls.Style för en enskild setter, så här:

new Label
{
    Style = new Style<Entry>(Entry.TextColorProperty, Colors.Red)
}

Dessa konstruktorer kan också användas för att initiera Style<T> och tilldela den till en Microsoft.Maui.Controls.Style för flera setter med hjälp av typer, så här:

new Label
{
    Style = new Style<Entry>(
            (Entry.TextColorProperty, Colors.Red),
            (Entry.BackgroundColorProperty, Colors.White),
            (Entry.FontAttributesProperty, FontAttributes.Bold))
}

Egenskaper

Style<T> innehåller en egenskap, MauiStyle.

Den här egenskapen utnyttjar Microsoft.Maui.Controls.Style och tilldelas vid initiering.

De format som läggs till och implementeras i Style<T> lagras i egenskapen MauiStyle .

public Microsoft.Maui.Controls.Style MauiStyle { get; }

Methods

Style<T> erbjuder fluent-tilläggsmetoder för Add för att lägga till ytterligare stilar, ange ApplyToDerivedTypes, ange BasedOn och ange CanCascade.

Lägg till

Style<T> erbjuder flera sätt att lägga till i ett befintligt format:

public Style<T> Add(BindableProperty property, object value);
public Style<T> AddAppThemeBinding(BindableProperty property, object light, object dark);
public Style<T> Add(params (BindableProperty Property, object Value)[] setters);
public Style<T> AddAppThemeBindings(params (BindableProperty Property, object Light, object Dark)[] setters);
public Style<T> Add(params Behavior[] behaviors);
public Style<T> Add(params TriggerBase[] triggers);

Metoderna Add kan användas så här:

new Label
{
    Style = new Style<Label>()
                .AddAppThemeBinding(Label.TextColorProperty, Colors.Red, Colors.Orange)
                .Add((Label.BackgroundColorProperty, Colors.White), (Label.FontAttributesProperty, FontAttributes.Bold))
                .Add(new NumericValidationBehavior())
                .Add(new EventTrigger { Event = nameof(Label.Focused) });
}

För mer information om användningen av AddAppThemeBinding, se Theming-dokumentationen.

ApplyToDerivedTypes

Den flytande tilläggsmetoden, ApplyToDerivedTypes(bool value), ställer in värdet för AppleToDerivedTypes-egenskapen:

public Style<T> ApplyToDerivedTypes(bool value);

Den kan användas så här:

new Label
{
    Style = new Style<Label>(Label.TextColorProperty, Colors.Red)
                .ApplyToDerivedTypes(true);
}

Baserat på

Den fluenta tilläggsmetoden, BasedOn(Style value), anger värdet för egenskapen BasedOn:

public Style<T> BasedOn(Style value);

Det kan användas så här för att basera det aktuella formatet på ett befintligt format:

new VerticalStackLayout
{
    Children = 
    {
        new Label
        {
            Style = new Style<Label>(Label.TextColorProperty, Colors.Red)
        }.Assign(out Label redTextLabel),

        new Label
        {
          Style = new Style<Label>().BasedOn(redTextLabel.Style);
        }
    }
};

CanCascade

Den fluenta tilläggsmetoden, CanCascade(bool value), anger värdet för egenskapen CanCascade:

public Style<T> CanCascade(bool value);

Den kan användas så här:

new Label
{
  Style = new Style<Label>(Label.TextColorProperty, Colors.Red).CanCascade(true);
}