Estilo<T>
Style<T>
fornece uma série de métodos de extensão fluentes que dão suporte à configuração de Microsoft.Maui.Controls.Style
.
Construtores
Style<T>
fornece os seguintes construtores:
public Style(BindableProperty property, object value);
public Style(params (BindableProperty Property, object Value)[] setters);
Esses construtores podem ser usados para inicializar Style<T>
e atribuí-los a um Microsoft.Maui.Controls.Style
para um único setter, da seguinte maneira:
new Label
{
Style = new Style<Entry>(Entry.TextColorProperty, Colors.Red)
}
Esses construtores também podem ser usados para inicializar Style<T>
e atribuí-los a um Microsoft.Maui.Controls.Style
para vários setters usando tipos, da seguinte maneira:
new Label
{
Style = new Style<Entry>(
(Entry.TextColorProperty, Colors.Red),
(Entry.BackgroundColorProperty, Colors.White),
(Entry.FontAttributesProperty, FontAttributes.Bold))
}
Propriedades
Style<T>
contém uma propriedade, MauiStyle
.
Essa propriedade aproveita Microsoft.Maui.Controls.Style
e é atribuída após a inicialização.
Os estilos adicionados e implementados em Style<T>
são armazenados na propriedade MauiStyle
.
public Microsoft.Maui.Controls.Style MauiStyle { get; }
Métodos
Style<T>
oferece métodos de extensão fluentes para estilos adicionais de Add
, para definir ApplyToDerivedTypes
, BasedOn
e CanCascade
.
Adicionar
Style<T>
oferece várias maneiras de adicionar a um estilo existente:
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);
Os métodos Add
podem ser usados da seguinte maneira:
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) });
}
Para obter mais informações sobre o uso de AddAppThemeBinding
consulte a documentação do Theming.
ApplyToDerivedTypes
O método de extensão fluente ApplyToDerivedTypes(bool value)
define o valor da propriedade AppleToDerivedTypes
:
public Style<T> ApplyToDerivedTypes(bool value);
Ele pode ser usado da seguinte maneira:
new Label
{
Style = new Style<Label>(Label.TextColorProperty, Colors.Red)
.ApplyToDerivedTypes(true);
}
BasedOn
O método de extensão fluente BasedOn(Style value)
define o valor da propriedade BasedOn
:
public Style<T> BasedOn(Style value);
Ele pode ser usado da mesma forma para basear o estilo atual em um estilo existente:
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
O método de extensão fluente CanCascade(bool value)
define o valor da propriedade CanCascade
:
public Style<T> CanCascade(bool value);
Ele pode ser usado da seguinte maneira:
new Label
{
Style = new Style<Label>(Label.TextColorProperty, Colors.Red).CanCascade(true);
}
.NET MAUI Community Toolkit