Xamarin.Forms Caixa de seleção
O Xamarin.FormsCheckBox
é um tipo de botão que pode ser marcado ou vazio. Quando uma caixa de seleção é marcada, ela é considerada ativada. Quando uma caixa de seleção está vazia, ela é considerada desativada.
CheckBox
Define uma bool
propriedade chamada IsChecked
, que indica se o CheckBox
está marcado. Essa propriedade também é apoiada por um BindableProperty
objeto, o que significa que ele pode ser estilizado e ser o destino de associações de dados.
Observação
A IsChecked
propriedade bindable tem um modo de vinculação padrão de BindingMode.TwoWay
.
CheckBox
Define um CheckedChanged
evento que é acionado quando a IsChecked
propriedade é alterada, por meio da manipulação do usuário ou quando um aplicativo define a IsChecked
propriedade. O CheckedChangedEventArgs
objeto que acompanha o CheckedChanged
evento tem uma única propriedade chamada Value
, do tipo bool
. Quando o evento é acionado, o Value
valor da propriedade é definido como o novo valor da IsChecked
propriedade.
Criar uma caixa de seleção
O exemplo a seguir mostra como instanciar um CheckBox
em XAML:
<CheckBox />
Esse XAML resulta na aparência mostrada nas seguintes capturas de tela:
Por padrão, o CheckBox
está vazio. O CheckBox
pode ser verificado pela manipulação do usuário ou definindo a IsChecked
propriedade como true
:
<CheckBox IsChecked="true" />
Esse XAML resulta na aparência mostrada nas seguintes capturas de tela:
Alternativamente, um CheckBox
pode ser criado no código:
CheckBox checkBox = new CheckBox { IsChecked = true };
Responder a uma caixa de seleção alterando o estado
Quando a IsChecked
propriedade é alterada, por meio da manipulação do usuário ou quando um aplicativo define a IsChecked
propriedade, o CheckedChanged
evento é 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 para o CheckedChanged
evento:
void OnCheckBoxCheckedChanged(object sender, CheckedChangedEventArgs e)
{
// Perform required operation after examining e.Value
}
O sender
argumento é o CheckBox
responsável por esse evento. Você pode usar isso para acessar o CheckBox
objeto ou para distinguir entre vários CheckBox
objetos que compartilham o mesmo CheckedChanged
manipulador de eventos.
Como alternativa, um manipulador de eventos para o CheckedChanged
evento pode ser registrado no código:
CheckBox checkBox = new CheckBox { ... };
checkBox.CheckedChanged += (sender, e) =>
{
// Perform required operation after examining e.Value
};
Os dados vinculam uma CheckBox
O CheckedChanged
manipulador de eventos pode ser eliminado usando vinculação de dados e gatilhos para responder a um CheckBox
que está sendo verificado ou vazio:
<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="Large" />
</DataTrigger>
</Label.Triggers>
</Label>
Neste exemplo, o Label
usa uma expressão de vinculação em um disparador de dados para monitorar a IsChecked
propriedade do CheckBox
. Quando essa propriedade se torna true
, as FontAttributes
propriedades e FontSize
da Label
alteração. Quando a IsChecked
propriedade retorna para false
, as FontAttributes
propriedades e FontSize
do Label
são redefinidas para seu estado inicial.
Nas capturas de tela a seguir, a captura de tela do iOS mostra a Label
formatação quando o CheckBox
está vazio, enquanto a captura de tela do Android mostra a Label
formatação quando o CheckBox
está marcado:
Para obter mais informações sobre gatilhos, consulte Xamarin.Forms Triggers.
Desativar uma caixa de seleção
Às vezes, um aplicativo entra em um estado em que uma CheckBox
verificação não é uma operação válida. Nesses casos, o pode ser desabilitado CheckBox
definindo sua IsEnabled
propriedade como false
.
Aparência da caixa de seleção
Além das propriedades que CheckBox
herda da View
classe, CheckBox
também define uma Color
propriedade que define sua cor como um Color
:
<CheckBox Color="Red" />
As capturas de tela a seguir mostram uma série de objetos verificados CheckBox
, onde cada objeto tem sua Color
propriedade definida como um diferente Color
:
Estados visuais CheckBox
CheckBox
tem um IsChecked
VisualState
que pode ser usado para iniciar uma alteração visual para o CheckBox
quando ele é verificado.
O exemplo XAML a seguir mostra como definir um estado visual para o IsChecked
estado:
<CheckBox ...>
<VisualStateManager.VisualStateGroups>
<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>
</VisualStateManager.VisualStateGroups>
</CheckBox>
Neste exemplo, o IsChecked
VisualState
especifica que, quando o CheckBox
for marcado, sua Color
propriedade será definida como verde. O Normal
VisualState
especifica que quando o CheckBox
está em um estado normal, sua Color
propriedade será definida como vermelho. Portanto, o efeito geral é que o CheckBox
é vermelho quando está vazio e verde quando é verificado.
Para obter mais informações sobre estados visuais, consulte Xamarin.Forms Visual State Manager.