Xamarin.Forms Флажок

Это 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 приводит к отображению внешнего вида, показанного на следующих снимках экрана:

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

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

<CheckBox IsChecked="true" />

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

Снимок экрана: флажок проверка с проверка в iOS и 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 проверка.

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

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

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

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

Внешний вид CheckBox

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

<CheckBox Color="Red" />

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

Снимок экрана: цветные флажки в iOS и 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.