Partilhar via


Comportamentos do .NET MAUI

Os comportamentos .NET Multi-platform App UI (.NET MAUI) permitem adicionar funcionalidade aos controles da interface do usuário sem precisar subclassificá-los. Em vez disso, a funcionalidade é implementada em uma classe de comportamento e anexada ao controle como se fosse parte do próprio controle.

Para obter mais informações sobre comportamentos, consulte a documentação do .NET MAUI.

Comportamentos do Kit de Ferramentas da Comunidade .NET MAUI

O .NET MAUI Community Toolkit fornece uma coleção de comportamentos pré-criados e reutilizáveis para facilitar a vida dos desenvolvedores. Aqui estão os comportamentos fornecidos pelo kit de ferramentas:

Comportamento Descrição
AnimationBehavior O AnimationBehavior é um Behavior que fornece a capacidade de animar qualquer VisualElement ao qual está anexado.
CharactersValidationBehavior O CharactersValidationBehavior é um Behavior que permite ao usuário validar a entrada de texto dependendo dos parâmetros especificados.
EmailValidationBehavior O EmailValidationBehavior é um Behavior que permite aos usuários determinar se a entrada de texto é ou não um endereço de email válido.
EventToCommandBehavior O EventToCommandBehavior é um behavior que permite ao usuário invocar um Command através de um Event. Foi projetado para associar comandos a eventos expostos por controlos que não foram projetados para suportar comandos. Ele permite que você mapeie qualquer evento arbitrário em um controle para um comando.
IconTintColorBehavior O IconTintColorBehavior é um behavior que permite tingir uma imagem.
ImageTouchBehavior O ImageTouchBehavior estende o TouchBehavior, fornecendo a capacidade de personalizar Image elementos com base em toque, clique do mouse e eventos de passagem do cursor.
MaskedBehavior O MaskedBehavior é um Behavior que permite ao usuário definir uma máscara de entrada para entrada de dados.
MaxLengthReachedBehavior O MaxLengthReachedBehavior é um comportamento que permite ao utilizador acionar uma ação quando o utilizador atingiu o comprimento máximo permitido num InputView.
MultiValidationBehavior O MultiValidationBehavior é um Behavior que permite ao usuário combinar vários validadores para validar a entrada de texto dependendo dos parâmetros especificados.
NumericValidationBehavior O NumericValidationBehavior é um Behavior que permite ao usuário determinar se a entrada de texto é um valor numérico válido.
ProgressBarAnimationBehavior O ProgressBarAnimationBehavior anima um ProgressBar do seu valor atual de Progresso para um valor fornecido ao longo do tempo.
RequiredStringValidationBehavior O RequiredStringValidationBehavior é um Behavior que permite ao usuário determinar se a entrada de texto é igual ao texto específico.
SelectAllTextBehavior O SelectAllTextBehavior é um Behavior que permite selecionar todo o texto em um InputView (por exemplo, um Entry ou Editor) quando ele se torna focado.
SetFocusOnEntryCompletedBehavior O SetFocusOnEntryCompletedBehavior é um Behavior que dá foco a um VisualElement específico quando um Entry é concluído.
StatusBarBehavior O StatusBarBehavior é um Behavior que permite personalizar a cor e o estilo da barra de status do seu dispositivo.
TextValidationBehavior O TextValidationBehavior é um Behavior que permite ao usuário validar um determinado texto dependendo dos parâmetros especificados.
TouchBehavior O TouchBehavior é um Behavior que fornece a capacidade de interagir com qualquer VisualElement com base em toque, clique do mouse e eventos de focalização.
UriValidationBehavior O UriValidationBehavior é um Behavior que permite aos usuários determinar se a entrada de texto é ou não um URI válido.
UserStoppedTypingBehavior O UserStoppedTypingBehavior é um comportamento que permite ao utilizador desencadear uma ação quando um utilizador interrompeu a entrada de dados em um Entry.

Criar um comportamento do .NET MAUI Community Toolkit

O .NET MAUI Community Toolkit fornece a BaseBehavior<T> classe que executa alguns dos requisitos de código padrão relacionados ao gerenciamento de um Behavior, o que permite aos desenvolvedores focarem-se no objetivo da implementação. Um comportamento do .NET MAUI Community Toolkit pode ser implementado criando uma classe que deriva da classe BaseBehavior<T> e, opcionalmente, substituindo os métodos OnAttachedTo, OnDetachingFrom ou OnViewPropertyChanged.

O exemplo a seguir mostra a classe NumericValidationBehavior, que destaca o valor inserido pelo usuário em um controle Entry em vermelho se não for um double:

public class NumericValidationBehavior : Behavior<Entry>
{
    void OnViewPropertyChanged(Entry sender, PropertyChangedEventArgs e)
    {
        if (e.PropertyName == nameof(Entry.Text))
        {
            bool isValid = double.TryParse(sender.Text, out double _);
            sender.TextColor = isValid ? Colors.Black : Colors.Red;
        }
    }
}

Neste exemplo, a classe NumericValidationBehavior deriva da classe BaseBehavior<T>, onde T é um Entry. Os OnAttachedTo métodos e OnDetachingFrom são manipulados dentro da implementação base, portanto, o único requisito é substituir o OnViewPropertyChanged. O método OnViewPropertyChanged será chamado sempre que houver uma alteração numa propriedade na propriedade View, que pertence a Entry. Isso OnViewPropertyChanged oferece a funcionalidade principal do comportamento, que analisa o valor inserido no Entry e define a propriedade TextColor para vermelho se o valor não for um double.