Xamarin.Forms CasellaXamarin.Forms CheckBox

Scarica esempio Scaricare l'esempioDownload Sample Download the sample

Xamarin.Forms CheckBox È un tipo di pulsante che può essere selezionato o vuoto.The Xamarin.Forms CheckBox is a type of button that can either be checked or empty. Quando una casella di controllo è selezionata, viene considerata attivata.When a checkbox is checked, it's considered to be on. Quando una casella di controllo è vuota, viene considerata disattivata.When a checkbox is empty, it's considered to be off.

CheckBox definisce una bool proprietà denominata IsChecked , che indica se l'oggetto CheckBox è selezionato.CheckBox defines a bool property named IsChecked, which indicates whether the CheckBox is checked. Questa proprietà è supportata anche da un BindableProperty oggetto, il che significa che è possibile applicare uno stile e essere la destinazione delle associazioni dati.This property is also backed by a BindableProperty object, which means that it can be styled, and be the target of data bindings.

Nota

La IsChecked proprietà associabile ha una modalità di associazione predefinita BindingMode.TwoWay .The IsChecked bindable property has a default binding mode of BindingMode.TwoWay.

CheckBox definisce un CheckedChanged evento generato quando la IsChecked proprietà viene modificata, tramite la manipolazione dell'utente o quando un'applicazione imposta la IsChecked Proprietà.CheckBox defines a CheckedChanged event that's fired when the IsChecked property changes, either through user manipulation or when an application sets the IsChecked property. L' CheckedChangedEventArgs oggetto che accompagna l' CheckedChanged evento ha una singola proprietà denominata Value , di tipo bool .The CheckedChangedEventArgs object that accompanies the CheckedChanged event has a single property named Value, of type bool. Quando viene generato l'evento, il valore della Value proprietà viene impostato sul nuovo valore della IsChecked Proprietà.When the event is fired, the value of the Value property is set to the new value of the IsChecked property.

Crea una casella di controlloCreate a CheckBox

Nell'esempio seguente viene illustrato come creare un'istanza di CheckBox in XAML:The following example shows how to instantiate a CheckBox in XAML:

<CheckBox />

Questo codice XAML genera l'aspetto illustrato nelle schermate seguenti:This XAML results in the appearance shown in the following screenshots:

Screenshot di una casella di controllo vuota, in iOS e AndroidScreenshot of an empty Checkbox, on iOS and Android

Per impostazione predefinita, CheckBox è vuoto.By default, the CheckBox is empty. L'oggetto CheckBox può essere controllato dalla manipolazione dell'utente oppure impostando la IsChecked proprietà su true :The CheckBox can be checked by user manipulation, or by setting the IsChecked property to true:

<CheckBox IsChecked="true" />

Questo codice XAML genera l'aspetto illustrato nelle schermate seguenti:This XAML results in the appearance shown in the following screenshots:

Screenshot di una casella di controllo selezionata, in iOS e AndroidScreenshot of a checked Checkbox, on iOS and Android

In alternativa, CheckBox è possibile creare un oggetto nel codice:Alternatively, a CheckBox can be created in code:

CheckBox checkBox = new CheckBox { IsChecked = true };

Rispondi a una casella di controllo modifica statoRespond to a CheckBox changing state

Quando la IsChecked proprietà viene modificata, tramite la manipolazione dell'utente o quando un'applicazione imposta la IsChecked proprietà, viene CheckedChanged generato l'evento.When the IsChecked property changes, either through user manipulation or when an application sets the IsChecked property, the CheckedChanged event fires. Un gestore eventi per questo evento può essere registrato per rispondere alla modifica:An event handler for this event can be registered to respond to the change:

<CheckBox CheckedChanged="OnCheckBoxCheckedChanged" />

Il file code-behind contiene il gestore per l' CheckedChanged evento:The code-behind file contains the handler for the CheckedChanged event:

void OnCheckBoxCheckedChanged(object sender, CheckedChangedEventArgs e)
{
    // Perform required operation after examining e.Value
}

L' sender argomento è CheckBox responsabile di questo evento.The sender argument is the CheckBox responsible for this event. È possibile usarlo per accedere all' CheckBox oggetto o per distinguere tra più CheckBox oggetti che condividono lo stesso CheckedChanged gestore eventi.You can use this to access the CheckBox object, or to distinguish between multiple CheckBox objects sharing the same CheckedChanged event handler.

In alternativa, un gestore eventi per l' CheckedChanged evento può essere registrato nel codice:Alternatively, an event handler for the CheckedChanged event can be registered in code:

CheckBox checkBox = new CheckBox { ... };
checkBox.CheckedChanged += (sender, e) =>
{
    // Perform required operation after examining e.Value
};

Casella di controllo Associa datiData bind a CheckBox

Il CheckedChanged gestore eventi può essere eliminato utilizzando Data Binding e trigger per rispondere a un oggetto CheckBox che viene verificato o vuoto:The CheckedChanged event handler can be eliminated by using data binding and triggers to respond to a CheckBox being checked or empty:

<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>

In questo esempio, Label Usa un'espressione di associazione in un trigger di dati per monitorare la IsChecked proprietà dell'oggetto CheckBox .In this example, the Label uses a binding expression in a data trigger to monitor the IsChecked property of the CheckBox. Quando questa proprietà diventa true , le FontAttributes FontSize proprietà e della Label modifica.When this property becomes true, the FontAttributes and FontSize properties of the Label change. Quando la IsChecked proprietà restituisce false , le FontAttributes proprietà e FontSize dell'oggetto Label vengono reimpostate sullo stato iniziale.When the IsChecked property returns to false, the FontAttributes and FontSize properties of the Label are reset to their initial state.

Negli screenshot seguenti lo screenshot iOS Mostra la Label formattazione quando CheckBox è vuoto, mentre lo screenshot di Android Mostra la Label formattazione quando è selezionata l'opzione CheckBox :In the following screenshots, the iOS screenshot shows the Label formatting when the CheckBox is empty, while the Android screenshot shows the Label formatting when the CheckBox is checked:

Screenshot della casella di controllo Data Binding in iOS e AndroidScreenshot of a data bound CheckBox, on iOS and Android

Per ulteriori informazioni sui trigger, vedere Xamarin.Forms trigger.For more information about triggers, see Xamarin.Forms Triggers.

Disabilitare una casella di controlloDisable a Checkbox

A volte un'applicazione entra in uno stato in cui un CheckBox controllo non è un'operazione valida.Sometimes an application enters a state where a CheckBox being checked is not a valid operation. In questi casi, CheckBox può essere disabilitato impostando la relativa IsEnabled proprietà su false .In such cases, the CheckBox can be disabled by setting its IsEnabled property to false.

Aspetto CheckBoxCheckBox appearance

Oltre alle proprietà che CheckBox ereditano dalla View classe, CheckBox definisce anche una Color proprietà che ne imposta il colore su un oggetto Color :In addition to the properties that CheckBox inherits from the View class, CheckBox also defines a Color property that sets its color to a Color:

<CheckBox Color="Red" />

Gli screenshot seguenti mostrano una serie di oggetti controllati CheckBox , in cui ogni oggetto ha la Color proprietà impostata su un valore diverso Color :The following screenshots show a series of checked CheckBox objects, where each object has its Color property set to a different Color:

Screenshot delle caselle di controllo colorate, in iOS e AndroidScreenshot of colored CheckBoxes, on iOS and Android

Stati di visualizzazione casella di controlloCheckBox visual states

CheckBox dispone di un oggetto IsChecked VisualState che può essere utilizzato per avviare una modifica visiva a CheckBox quando viene controllata.CheckBox has an IsChecked VisualState that can be used to initiate a visual change to the CheckBox when it becomes checked.

Nell'esempio di codice XAML riportato di seguito viene illustrato come definire uno stato di visualizzazione per lo IsChecked stato:The following XAML example shows how to define a visual state for the IsChecked state:

<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>

In questo esempio, IsChecked VisualState specifica che quando CheckBox è selezionato, la Color proprietà verrà impostata su verde.In this example, the IsChecked VisualState specifies that when the CheckBox is checked, its Color property will be set to green. Normal VisualState Specifica che quando CheckBox è in uno stato normale, la relativa Color proprietà sarà impostata su rosso.The Normal VisualState specifies that when the CheckBox is in a normal state, its Color property will be set to red. Pertanto, l'effetto complessivo è che il CheckBox è rosso quando è vuoto e verde quando è selezionato.Therefore, the overall effect is that the CheckBox is red when it's empty, and green when it's checked.

Per ulteriori informazioni sugli stati visivi, vedere Xamarin.Forms Visual State Manager.For more information about visual states, see Xamarin.Forms Visual State Manager.