Xamarin.Forms Prvku

Ukázka stažení Stažení ukázky

Xamarin.FormsCheckBox Je typ tlačítka, které může být buď zaškrtnuto, nebo prázdné. Když je zaškrtávací políčko zaškrtnuto, je považováno za zapnuto. Když je zaškrtávací políčko prázdné, je považováno za vypnuté.

CheckBox definuje bool vlastnost s názvem IsChecked , která označuje, zda CheckBox je zaškrtnuto. Tato vlastnost je také zajištěna BindableProperty objektem, což znamená, že může být stylem a cílem datových vazeb.

Poznámka

Vlastnost s možností IsChecked vazby má výchozí režim vazby Xamarin_Forms IsChecked _BindingMode_TwoWay "data-LINKTYPE =" absolutní cesta ">BindingMode.TwoWay .

CheckBox definuje CheckedChanged událost, která se aktivuje, když se IsChecked změní vlastnost, a to buď prostřednictvím manipulace s uživatelem, nebo v případě, že aplikace nastaví IsChecked vlastnost. CheckedChangedEventArgsObjekt, který provází událost, CheckedChanged má jedinou vlastnost s názvem Value typu bool . Při vyvolání události Value je hodnota vlastnosti nastavena na novou hodnotu IsChecked Vlastnosti.

Vytvoří zaškrtávací políčko.

Následující příklad ukazuje, jak vytvořit instanci CheckBox v jazyce XAML:

<CheckBox />

Výsledkem tohoto XAML je vzhled zobrazený na následujících snímcích obrazovky:

Snímek obrazovky prázdného zaškrtávacího políčka v pro iOS a Android

Ve výchozím nastavení CheckBox je pole prázdné. CheckBoxLze zkontrolovat pomocí manipulace uživatele nebo nastavením IsChecked vlastnosti na true :

<CheckBox IsChecked="true" />

Výsledkem tohoto XAML je vzhled zobrazený na následujících snímcích obrazovky:

Snímek obrazovky kontrolovaného zaškrtávacího políčka v pro iOS a Android

Alternativně CheckBox lze vytvořit v kódu:

CheckBox checkBox = new CheckBox { IsChecked = true };

Reakce na stav změny zaškrtávacího políčka

Při IsChecked změně vlastnosti buď pomocí manipulace s uživatelem, nebo když aplikace nastaví IsChecked vlastnost, CheckedChanged událost se aktivuje. Obslužná rutina události pro tuto událost může být registrována pro reakci na změnu:

<CheckBox CheckedChanged="OnCheckBoxCheckedChanged" />

Soubor kódu na pozadí obsahuje obslužnou rutinu pro CheckedChanged událost:

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

senderArgument je zodpovědný za CheckBox tuto událost. To můžete použít pro přístup k CheckBox objektu nebo pro rozlišení mezi více CheckBox objekty sdílející stejnou CheckedChanged obslužnou rutinu události.

Alternativně lze obslužnou rutinu události pro CheckedChanged událost zaregistrovat v kódu:

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

Zaškrtávací políčko vázání dat

CheckedChangedObslužná rutina události může být odstraněna pomocí datových vazeb a triggerů, aby reagovaly na CheckBox zaškrtnuté nebo prázdné:

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

V tomto příkladu Label používá výraz vazby v triggeru dat ke sledování IsChecked vlastnosti prvku CheckBox . Když se tato vlastnost změní true , FontAttributesFontSize vlastnosti a Label změny. Když se IsChecked vlastnost vrátí do false , FontAttributes vlastnosti a FontSizeLabel jsou obnoveny do jejich počátečního stavu.

Na následujících snímcích obrazovky zobrazí snímek obrazovky iOS Label formátování CheckBox , když je prázdné, zatímco snímek obrazovky Android zobrazuje formátování, Label Když CheckBox je zaškrtnuté:

Snímek obrazovky políčkem vázaný na data v zaškrtávacím políčku vázaného datana iOS a Androidu

Další informace o aktivačních událostech najdete v tématu Xamarin.Forms Triggers .

Zakázat zaškrtávací políčko

Někdy aplikace zadává stav, kde není CheckBox kontrolována platná operace. V takových případech je CheckBox možné zakázat nastavením IsEnabled vlastnosti na false .

Vzhled zaškrtávacího políčka

Kromě vlastností, které CheckBox dědí z View třídy, CheckBox definuje také Color vlastnost, která nastaví její barvu na Color :

<CheckBox Color="Red" />

Následující snímky obrazovky ukazují řadu zkontrolovaných CheckBox objektů, kde má každý objekt Color vlastnost nastavenou na jinou hodnotu Color :

Snímek obrazovky s barevnými políčky, pro iOS a Android

Vizuální stavy zaškrtávacího políčka

CheckBoxmá objekt IsCheckedVisualState , který lze použít k iniciování vizuální změny v okamžiku, kdy se bude CheckBox kontrolovat.

Následující příklad XAML ukazuje, jak definovat vizuální stav pro IsChecked stav:

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

V tomto příkladu určuje, IsCheckedVisualState že pokud CheckBox je zaškrtnuto, jeho Color vlastnost bude nastavena na zelenou. NormalVisualState Určuje, že je-li CheckBox v normálním stavu, Color bude vlastnost nastavena na hodnotu Red. Proto je celkový efekt v tom, že CheckBox je červený, pokud je prázdný, a zelenou, pokud je zaškrtnuto.

Další informace o vizuálních stavech naleznete v tématu Xamarin.Forms Visual State Manager .