Xamarin.Forms Interruptor
El control es un botón de alternancia horizontal que el usuario puede manipular para alternar entre los estados de encendido y apagado, que se representan Xamarin.FormsSwitch mediante un valor boolean . La clase Switch se hereda de View.
En las capturas de pantalla siguientes se muestra un control en sus estados de alternancia de activación y Switch desactivación en iOS Switch y Android:
y Android
El Switch control define las siguientes propiedades:
- Xamarin_Forms _Switch_IsToggled" data-linktype="absolute-path">
IsToggledesbooleanSwitchIsToggledun valor que indica si está en . - Xamarin_Forms _Switch_OnColor" data-linktype="absolute-path">es un que afecta
OnColoraColorSwitchOnColorcómo se representa en el estado alternado o en , . ThumbColores elColordel control de posición.
Estas propiedades están copiadas por un objeto , lo que significa que se puede crear un estilo y ser BindableProperty el destino de los enlaces de Switch datos.
El control define un evento que se desencadena cuando cambia la propiedad, ya sea a través de la manipulación del usuario Switch o cuando una aplicación establece la propiedad ToggledIsToggledIsToggled . El objeto que acompaña al evento tiene ToggledEventArgs una sola propiedad denominada , de tipo ToggledValuebool . Cuando se desencadena el evento, el valor de la Value propiedad refleja el nuevo valor de la IsToggled propiedad.
Crear un modificador
Se Switch puede crear una instancia de en XAML. Su IsToggled propiedad se puede establecer para alternar . Switch De forma predeterminada, IsToggled la propiedad es false . En el ejemplo siguiente se muestra cómo crear una instancia de Switch en XAML con la propiedad opcional IsToggled establecida:
<Switch IsToggled="true"/>
También Switch se puede crear un en el código:
Switch switchControl = new Switch { IsToggled = true };
Cambio de apariencia
Además de las propiedades que Switch heredan de la View clase , también define las propiedades y SwitchOnColorThumbColor . La propiedad se puede establecer para definir el color cuando se alterna a su estado on, y la propiedad se puede establecer para definir el del OnColorSwitch control de OnColorThumbColorColor posición. En el ejemplo siguiente se muestra cómo crear una instancia de Switch en XAML con estas propiedades establecidas:
<Switch OnColor="Orange"
ThumbColor="Green" />
Las propiedades también se pueden establecer al crear un Switch elemento en el código:
Switch switch = new Switch { OnColor = Color.Orange, ThumbColor = Color.Green };
En la captura de pantalla siguiente se muestra en sus estados de alternancia de activación y Switch desactivación, con las propiedades y SwitchThumbColor establecidas:
Captura de pantalla de los estados De entrada
Respuesta a un cambio de estado de conmutador
Cuando cambia la propiedad, ya sea a través de la manipulación del usuario o cuando una IsToggled aplicación establece la IsToggled propiedad, se produce el evento Toggled . Se puede registrar un controlador de eventos para este evento para responder al cambio:
<Switch Toggled="OnToggled" />
El archivo de código subyacente contiene el controlador del Toggled evento:
void OnToggled(object sender, ToggledEventArgs e)
{
// Perform an action after examining e.Value
}
El sender argumento del controlador de eventos es el responsable de activar este Switch evento. Puede usar la propiedad para tener acceso al objeto o para distinguir sender entre varios objetos que SwitchSwitch comparten el mismo controlador de Toggled eventos.
El Toggled controlador de eventos también se puede asignar en el código:
Switch switchControl = new Switch {...};
switchControl.Toggled += (sender, e) =>
{
// Perform an action after examining e.Value
}
Enlace de datos a un modificador
El controlador de eventos se puede eliminar mediante el enlace de datos y desencadenadores Toggled para responder a un cambio de estados de Switch alternancia.
<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 Source={x:Reference styleSwitch}, Path=IsToggled}"
Value="true">
<Setter Property="FontAttributes"
Value="Italic, Bold" />
<Setter Property="FontSize"
Value="Large" />
</DataTrigger>
</Label.Triggers>
</Label>
En este ejemplo, Label utiliza una expresión de enlace en para supervisar la propiedad del denominado DataTriggerIsToggledSwitchstyleSwitch . Cuando esta propiedad se convierte en , se cambian true las propiedades y de FontAttributesFontSizeLabel . Cuando la IsToggled propiedad vuelve a , las propiedades y de se falseFontAttributesFontSizeLabel restablecen a su estado inicial.
Para obtener información sobre los desencadenadores, vea Xamarin.Forms Triggers .
Cambio de los estados visuales
Switchtiene estados visuales y que se pueden usar para iniciar un cambio visual cuando cambia la propiedad OnOff Xamarin_Forms Switch _Switch_IsToggled" data-linktype="absolute-path">IsToggled propiedad.
En el ejemplo xaml siguiente se muestra cómo definir estados visuales para los On estados Off y :
<Switch IsToggled="True">
<VisualStateManager.VisualStateGroups>
<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>
</VisualStateManager.VisualStateGroups>
</Switch>
En este ejemplo, especifica que cuando la propiedad OnVisualStateOn Xamarin_Forms _Switch_IsToggled" data-linktype="absolute-path">IsToggled es , trueThumbColor la propiedad se establecerá en verde de primavera medio. especifica OffVisualState que, cuando la IsToggled propiedad es , la propiedad se falseThumbColor establecerá en rojo. Por lo tanto, el efecto general es que, cuando está en una posición de desarroba, su control es rojo y su control es verde de primavera medio cuando está en una SwitchSwitch posición on:
Switch on
Switch off VisualState (Desactivar VisualState en iOS y Android Desactivar
Para obtener más información sobre los estados visuales, vea Xamarin.Forms Visual State Manager .
Deshabilitar un modificador
Una aplicación puede entrar en un estado en el que Switch el elemento que se está alternando no es una operación válida. En tales casos, se puede deshabilitar el objeto Switch estableciendo su propiedad IsEnabled en false. Esto impedirá que los usuarios puedan manipular Switch .
Descarga del ejemplo