Поделиться через


CheckBox

Просмотрите пример. Обзор примера

Пользовательский интерфейс мультиплатформенного приложения .NET (.NET MAUI) CheckBox — это тип кнопки, которую можно проверить или пустую. Если флажок установлен, считается, что он включен. Если флажок пуст, он считается отключенным.

CheckBox определяет следующие свойства:

  • IsCheckedтип bool, который указывает, проверяется ли CheckBox проверка. Это свойство имеет режим привязки TwoWayпо умолчанию.
  • Color, тип Color, указывающий цвет CheckBox.

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

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

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

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

<CheckBox />

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

Снимок экрана: пустой флажок.

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

<CheckBox IsChecked="true" />

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

Снимок экрана: флажок CheckBox.

Кроме того, 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="18" />
        </DataTrigger>
    </Label.Triggers>
</Label>

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

На следующем снимку экрана показано Label форматирование при CheckBox проверке:

Снимок экрана: флажок с привязкой к данным.

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

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

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

Внешний вид CheckBox

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

<CheckBox Color="Red" />

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

Снимок экрана: цветные флажки.

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

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

В следующем примере XAML показано, как определить визуальное состояние для 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>

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

Дополнительные сведения о визуальных состояниях см. в разделе "Визуальные состояния".