CheckBox
O .NET Multi-Platform App UI (.NET MAUI) CheckBox é um tipo de botão que pode ser marcado ou desmarcado. Quando uma caixa de seleção está marcada, ela é considerada ativada. Quando uma caixa de seleção está desmarcada, ela é considerada desativada.
CheckBox define as propriedades a seguir:
IsChecked
, do tipobool
, que indica se o CheckBox está marcado. Essa propriedade tem um modo de associação padrão deTwoWay
.Color
, do tipo Color, que indica a cor do CheckBox.
Essas propriedades são apoiadas por objetos BindableProperty, o que significa que podem ser estilizadas e ser o alvo de associações de dados.
O CheckBox define um evento CheckedChanged
gerado quando a propriedade IsChecked
é alterada por meio da manipulação do usuário ou quando um aplicativo define a propriedade IsChecked
. O objeto CheckedChangedEventArgs
que acompanha o evento CheckedChanged
tem apenas uma propriedade chamada Value
, do tipo bool
. Quando o evento é gerado, o valor da propriedade Value
é definido como o novo valor da propriedade IsChecked
.
Criar um CheckBox
O exemplo a seguir mostra como criar uma instância de CheckBox em XAML:
<CheckBox />
Esse XAML resulta na aparência mostrada na seguinte captura de tela:
Por padrão, o CheckBox está vazio. O CheckBox pode ser marcado pela manipulação do usuário ou definindo a propriedade IsChecked
como true
:
<CheckBox IsChecked="true" />
Esse XAML resulta na aparência mostrada na seguinte captura de tela:
Como alternativa, um CheckBox pode ser criado no código:
CheckBox checkBox = new CheckBox { IsChecked = true };
Responder a alteração de estado de um CheckBox
Quando a propriedade IsChecked
é alterada por meio da manipulação do usuário ou quando um aplicativo define a propriedade IsChecked
, o evento CheckedChanged
é acionado. Um manipulador de eventos para esse evento pode ser registrado para responder à alteração:
<CheckBox CheckedChanged="OnCheckBoxCheckedChanged" />
O arquivo code-behind contém o manipulador do evento CheckedChanged
:
void OnCheckBoxCheckedChanged(object sender, CheckedChangedEventArgs e)
{
// Perform required operation after examining e.Value
}
O argumento sender
é o CheckBox responsável por esse evento. Você pode usar isso para acessar o objeto CheckBox ou para distinguir entre vários objetos CheckBox que compartilham o mesmo manipulador de eventos CheckedChanged
.
Como alternativa, um manipulador de eventos para o evento CheckedChanged
pode ser registrado no código:
CheckBox checkBox = new CheckBox { ... };
checkBox.CheckedChanged += (sender, e) =>
{
// Perform required operation after examining e.Value
};
Associar dados a um CheckBox
O manipulador de eventos CheckedChanged
pode ser eliminado usando associação de dados e gatilhos para responder a um CheckBox que está sendo marcado ou desmarcado:
<CheckBox x:Name="checkBox" />
<Label Text="Lorem ipsum dolor sit amet, elit rutrum, enim hendrerit augue vitae praesent sed non, lorem aenean quis praesent pede.">
<Label.Triggers>
<DataTrigger TargetType="Label"
Binding="{Binding Source={x:Reference checkBox}, Path=IsChecked}"
Value="true">
<Setter Property="FontAttributes"
Value="Italic, Bold" />
<Setter Property="FontSize"
Value="18" />
</DataTrigger>
</Label.Triggers>
</Label>
Neste exemplo, o Label usa uma expressão de associação em um gatilho de dados para monitorar a propriedade IsChecked
do CheckBox. Quando essa propriedade se torna true
, as propriedades FontAttributes
e FontSize
do Label são alteradas. Quando a propriedade IsChecked
retorna a false
, as propriedades FontAttributes
e FontSize
de Label são redefinidas para o estado inicial.
A captura de tela a seguir mostra a formatação Label, quando o CheckBox é marcado:
Para obter mais informações sobre gatilhos, consulte Gatilhos.
Desabilitar um CheckBox
Às vezes, um aplicativo entra em um estado em que marcar um CheckBox não é uma operação válida. Nesses casos, o CheckBox pode ser desabilitado definindo a propriedade IsEnabled
dele como false
.
Aparência do CheckBox
Além das propriedades que CheckBox herda da classe View, CheckBox também define uma propriedade Color
que define sua cor como Color:
<CheckBox Color="Red" />
A captura de tela a seguir mostra uma série de objetos CheckBox marcados, em que cada objeto tem sua propriedade Color
definida com um Color diferente:
Estados visuais CheckBox
O CheckBox tem um IsChecked
VisualState que pode ser usado para iniciar uma alteração visual no CheckBox no momento em que ele é marcado.
O exemplo XAML a seguir mostra como definir um estado visual para o estado IsChecked
:
<CheckBox ...>
<VisualStateManager.VisualStateGroups>
<VisualStateGroupList>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal">
<VisualState.Setters>
<Setter Property="Color"
Value="Red" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="IsChecked">
<VisualState.Setters>
<Setter Property="Color"
Value="Green" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateGroupList>
</VisualStateManager.VisualStateGroups>
</CheckBox>
Neste exemplo, o IsChecked
VisualState especifica que, quando o CheckBox for marcado, sua propriedade Color
será definida como verde. O Normal
VisualState especifica que, quando o CheckBox estiver em um estado normal, sua propriedade Color
será definida como vermelha. Portanto, o efeito geral é que o CheckBox é vermelho quando está vazio e verde quando é marcado.
Para obter mais informações sobre estados visuais, consulte Estados visuais.