Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Пользовательский интерфейс приложений .NET (.NET MAUI) Switch — это горизонтальная кнопка переключения, которой пользователь может управлять, чтобы переключаться между состояниями вкл. и выкл., которые представлены значением boolean
.
На следующем снимке экрана показан элемент управления Switch в его состояниях включения и выключения.
Элемент управления Switch определяет следующие свойства:
-
IsToggled
— это значениеboolean
, указывающее, включен ли Switch. Значение по умолчанию этого свойства —false
. -
OffColor
— это Color, определяющий способ отображения Switch в выключенном состоянии. -
OnColor
— это Color, определяющий способ отрисовки Switch в переключенном или включенном состоянии. -
ThumbColor
— это Color отпечатка переключателя.
Эти свойства поддерживаются объектами BindableProperty, что означает, что они могут быть стилизованы и быть целевыми объектами для привязки данных.
Элемент управления Switch определяет событие Toggled
, которое возникает при изменении свойства IsToggled
путем манипуляции пользователем или при установке приложения свойства IsToggled
. Объект ToggledEventArgs
, сопровождающий событие Toggled
, имеет одно свойство с именем Value
типа bool
. При возникновении события значение свойства Value
отражает новое значение свойства IsToggled
.
Создание коммутатора
Экземпляр объекта Switch можно создать в XAML. Свойство IsToggled
можно установить, чтобы переключать Switch. По умолчанию свойство IsToggled
является false
. В следующем примере показано, как создать экземпляр Switch в XAML с установкой необязательного свойства IsToggled
:
<Switch IsToggled="true"/>
В коде также можно создать объект Switch:
Switch switchControl = new Switch { IsToggled = true };
Изменить внешний вид
Помимо свойств, которые Switch наследуются от класса View, Switch также определяет свойства OnColor
и ThumbColor
. Свойство OnColor
можно задать для определения цвета Switch при переключении на включенное состояние, а свойство ThumbColor
можно задать для определения Color ползунка переключателя. В следующем примере показано, как создать экземпляр Switch в XAML с набором следующих свойств:
<Switch OnColor="Orange"
ThumbColor="Green" />
Свойства также можно задать при создании Switch в коде:
Switch switch = new Switch { OnColor = Colors.Orange, ThumbColor = Colors.Green };
Помимо свойств, наследующих Switch от класса View, Switch также определяет свойства OffColor
, OnColor
и ThumbColor
. Свойство OffColor
можно задать для определения цвета Switch в его отключенном состоянии. Свойство OnColor
можно задать для определения цвета Switch, когда переключатель находится в положении "включено", а свойство ThumbColor
можно задать для определения Color ползунка переключателя. В следующем примере показано, как создать экземпляр Switch в XAML с набором следующих свойств:
<Switch OffColor="Red"
OnColor="Orange"
ThumbColor="Green" />
Свойства также можно задать при создании Switch в коде:
Switch switch = new Switch { OffColor = Colors.Red, OnColor = Colors.Orange, ThumbColor = Colors.Green };
На следующем снимке экрана показана Switch в его состояниях включения и выключения с установленными свойствами OnColor
и ThumbColor
.
Реагирование на изменение состояния коммутатора
При изменении свойства IsToggled
с помощью манипуляций с пользователем или при установке свойства IsToggled
событие Toggled
запускается. Обработчик событий для этого события можно зарегистрировать для реагирования на изменения:
<Switch Toggled="OnToggled" />
Файл "code-behind" содержит обработчик события Toggled
:
void OnToggled(object sender, ToggledEventArgs e)
{
// Perform an action after examining e.Value
}
Аргумент sender
в обработчике событий — это Switch, который отвечает за запуск этого события. Свойство sender
можно использовать для доступа к объекту Switch или для различия между несколькими объектами Switch, использующими один и тот же обработчик событий Toggled
.
Обработчик событий Toggled
также можно назначить в коде:
Switch switchControl = new Switch {...};
switchControl.Toggled += (sender, e) =>
{
// Perform an action after examining e.Value
};
Привязка данных к переключателю
Обработчик событий Toggled
можно устранить с помощью привязки данных и триггеров для реагирования на Switch изменения состояний переключателя.
<Switch x:Name="styleSwitch" />
<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 x:DataType='Switch', Source={x:Reference styleSwitch}, Path=IsToggled}"
Value="true">
<Setter Property="FontAttributes"
Value="Italic, Bold" />
<Setter Property="FontSize"
Value="18" />
</DataTrigger>
</Label.Triggers>
</Label>
В этом примере Label использует выражение привязки в DataTrigger, чтобы отслеживать свойство IsToggled
объекта Switch с именем styleSwitch
. Когда свойство становится true
, у Label изменяются свойства FontAttributes
и FontSize
. Когда свойство IsToggled
возвращается к false
, свойства FontAttributes
и FontSize
объекта Label возвращаются в начальное состояние.
Переключение визуальных состояний
Switch имеет On
и Off
визуальные состояния, которые можно использовать для запуска визуального изменения при изменении свойства IsToggled
.
В следующем примере XAML показано, как определить визуальные состояния для состояний On
и Off
:
<Switch IsToggled="True">
<VisualStateManager.VisualStateGroups>
<VisualStateGroupList>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="On">
<VisualState.Setters>
<Setter Property="ThumbColor"
Value="MediumSpringGreen" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="Off">
<VisualState.Setters>
<Setter Property="ThumbColor"
Value="Red" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateGroupList>
</VisualStateManager.VisualStateGroups>
</Switch>
В этом примере On
VisualState указывает, что если свойство IsToggled
будет true
, то свойство ThumbColor
будет установлено в средне-весенне-зеленый цвет.
Off
VisualState указывает, что если свойство IsToggled
равно false
, то свойство ThumbColor
будет установлено в красный. Таким образом, общий эффект заключается в том, что, когда Switch находится в выключенном положении, его курок красный, а его курок средне-зеленый, когда Switch находится во включенном положении.
Для получения дополнительной информации о визуальных состояниях см. раздел Визуальные состояния.
Отключение переключателя
Приложение может войти в состояние, в котором переключение Switch не является допустимой операцией. В таких случаях Switch можно отключить, задав для свойства IsEnabled
значение false
. Это предотвратит возможность пользователей манипулировать Switch.