Xamarin.Forms Флажок

Download Sample Скачайте пример

Это Xamarin.FormsCheckBox тип кнопки, которая может быть проверка или пуста. Если проверка box проверка, считается, что он включен. Если проверка box пуст, он считается отключенным.

CheckBoxbool определяет свойство с именемIsChecked, указывающее, проверка ли CheckBox он проверка. Это свойство также поддерживается BindableProperty объектом, что означает, что он может быть стилем и быть целевым объектом привязок данных.

Примечание.

Привязываемое IsChecked свойство имеет режим BindingMode.TwoWayпривязки по умолчанию.

CheckBox определяет событие, которое возникает CheckedChanged при изменении свойства либо с IsChecked помощью манипуляции пользователем, либо при установке свойства приложением IsChecked . Объект CheckedChangedEventArgs , который сопровождает CheckedChanged событие, имеет одно свойство с именем Valueтипа bool. При срабатывании события значение Value свойства присваивается новому значению IsChecked свойства.

Создание флажка

В следующем примере показано, как создать экземпляр в CheckBox XAML:

<CheckBox />

Этот КОД XAML приводит к отображению внешнего вида, показанного на следующих снимках экрана:

Screenshot of an empty Checkbox, on iOS and Android

По умолчанию пустой CheckBox . Его CheckBox можно проверка путем манипуляции с пользователем или путем задания свойства trueследующим IsChecked образом:

<CheckBox IsChecked="true" />

Этот КОД XAML приводит к отображению внешнего вида, показанного на следующих снимках экрана:

Screenshot of a checked Checkbox, on iOS and Android

Кроме того, CheckBox можно создать в коде:

CheckBox checkBox = new CheckBox { IsChecked = true };

Реагирование на изменение состояния CheckBox

IsChecked Когда свойство изменяется либо с помощью пользовательской манипуляции, либо при установке IsChecked свойства CheckedChanged приложением событие запускается. Обработчик событий для этого события можно зарегистрировать для реагирования на изменения:

<CheckBox CheckedChanged="OnCheckBoxCheckedChanged" />

Файл программной части содержит обработчик события CheckedChanged :

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

Аргумент sender отвечает CheckBox за это событие. Это можно использовать для доступа к объекту CheckBox или для различения нескольких CheckBox объектов, использующих один и тот же CheckedChanged обработчик событий.

Кроме того, обработчик событий для CheckedChanged события можно зарегистрировать в коде:

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

Привязка данных к checkBox

Обработчик CheckedChanged событий можно устранить с помощью привязки данных и триггеров для реагирования на CheckBox проверка или пустое:

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

В этом примере Label используется выражение привязки в триггере данных для мониторинга IsChecked свойства CheckBoxобъекта. Когда это свойство становится true, FontAttributes и FontSize свойства Label изменения. IsChecked Когда свойство возвращаетсяfalse, FontAttributes свойства сбрасываются FontSizeLabel в исходное состояние.

На следующих снимках экрана на снимке экрана iOS показано Label форматирование при CheckBox пустом режиме, а на снимке экрана Android отображается Label форматирование при CheckBox проверка.

Screenshot of a data bound CheckBox, on iOS and Android

Дополнительные сведения об триггерах см. в разделе Xamarin.Forms "Триггеры".

Отключение флажка

Иногда приложение входит в состояние, в котором CheckBox проверка ed не является допустимой операцией. В таких случаях CheckBox можно отключить, задав свойству IsEnabled значение false.

Внешний вид CheckBox

Помимо свойств, наследующих CheckBox от View класса, также определяет Color свойство, CheckBox которое задает его цвет:Color

<CheckBox Color="Red" />

На следующих снимках экрана показан ряд проверка проверка CheckBox объектов, где каждый объект имеет его свойство, заданное для Color другогоColor:

Screenshot of colored CheckBoxes, on iOS and Android

Визуальные состояния CheckBox

CheckBoxимеет значениеIsCheckedVisualState, которое можно использовать для инициирования визуального изменения, CheckBox когда оно становится проверка.

В следующем примере XAML показано, как определить визуальное состояние для IsChecked состояния:

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

В этом примере указывается, IsCheckedVisualState что при CheckBox проверка его Color свойству будет присвоен зеленый цвет. Указывает NormalVisualState , что при CheckBox обычном состоянии его Color свойство будет иметь красный цвет. Таким образом, общий эффект заключается в том, что CheckBox красный, когда он пуст, и зеленый, когда он проверка.

Дополнительные сведения о визуальных состояниях см. в статье Диспетчер визуального представления состояний Xamarin.Forms.