Comutador

Browse sample. Navegue pelo exemplo

O controle .NET Multi-platform App UI (.NET MAUI) Switch é um botão de alternância horizontal que pode ser manipulado pelo usuário para alternar entre estados de ativação e desativação, que são representados por um boolean valor.

A captura de tela a seguir mostra um controle em seus estados de alternância de Switch ativação e desativação:

Screenshot of Switches in on and off states.

O Switch controle define as seguintes propriedades:

  • IsToggled é um boolean valor que indica se o Switch está ativado. O valor padrão dessa propriedade é false.
  • OnColor é um Color que afeta como o Switch é renderizado no estado alternado ou ativado.
  • ThumbColor é o Color polegar do interruptor.

Essas propriedades são apoiadas por BindableProperty objetos, o que significa que elas podem ser estilizadas e ser o destino de associações de dados.

O Switch controle define um evento que é gerado quando a propriedade é alterada, por meio da manipulação do usuário ou quando um Toggled aplicativo define a IsToggledIsToggled propriedade. O ToggledEventArgs objeto que acompanha o Toggled evento tem uma única propriedade chamada Value, do tipo bool. Quando o evento é gerado, o Value valor da propriedade reflete o novo valor da IsToggled propriedade.

Criar um Switch

Um Switch pode ser instanciado em XAML. Sua IsToggled propriedade pode ser definida para alternar o Switch. Por padrão, a IsToggled propriedade é false. O exemplo a seguir mostra como instanciar um Switch em XAML com o conjunto de propriedades opcional IsToggled :

<Switch IsToggled="true"/>

A Switch também pode ser criado em código:

Switch switchControl = new Switch { IsToggled = true };

Mudar de aparência

Além das propriedades que Switch herda da View classe, Switch também define OnColor e ThumbColor propriedades. A OnColor propriedade pode ser definida para definir a cor quando ela é alternada para seu estado on e a SwitchThumbColor propriedade pode ser definida para definir o Color polegar do switch. O exemplo a seguir mostra como instanciar um Switch em XAML com essas propriedades definidas:

<Switch OnColor="Orange"
        ThumbColor="Green" />

As propriedades também podem ser definidas ao criar um Switch código in:

Switch switch = new Switch { OnColor = Colors.Orange, ThumbColor = Colors.Green };

A captura de tela a seguir mostra os estados de Switch alternância ativa e desativada, com as OnColor propriedades e ThumbColor definidas:

Screenshot of Switches in on and off states with the colors changed.

Responder a uma alteração de estado do Switch

Quando a propriedade é alterada, por meio da manipulação do usuário ou quando um aplicativo define a IsToggledIsToggled propriedade, o Toggled evento é acionado. Um manipulador de eventos para esse evento pode ser registrado para responder à alteração:

<Switch Toggled="OnToggled" />

O arquivo code-behind contém o manipulador para o Toggled evento:

void OnToggled(object sender, ToggledEventArgs e)
{
    // Perform an action after examining e.Value
}

O sender argumento no manipulador de eventos é o Switch responsável por disparar esse evento. Você pode usar a sender propriedade para acessar o objeto ou para distinguir entre vários Switch objetos que compartilham o Switch mesmo Toggled manipulador de eventos.

O Toggled manipulador de eventos também pode ser atribuído no código:

Switch switchControl = new Switch {...};
switchControl.Toggled += (sender, e) =>
{
    // Perform an action after examining e.Value
};

Vincular dados a um Switch

O Toggled manipulador de eventos pode ser eliminado usando vinculação de dados e gatilhos para responder a uma Switch mudança de estados de alternância.

<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="18" />
        </DataTrigger>
    </Label.Triggers>
</Label>

Neste exemplo, o Label usa uma expressão de vinculação em um DataTrigger para monitorar a IsToggled propriedade do Switch nome styleSwitch. Quando essa propriedade se torna true, as FontAttributes propriedades e FontSize do Label são alteradas. Quando a IsToggled propriedade retorna para , as FontAttributes propriedades e FontSize do Label são redefinidas para falseseu estado inicial.

Para obter informações sobre gatilhos, consulte Triggers.

Alternar estados visuais

Switch tem On e Off estados visuais que podem ser usados para iniciar uma alteração visual quando a IsToggled propriedade é alterada.

O exemplo XAML a seguir mostra como definir estados visuais para os On estados e Off :

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

Neste exemplo, o OnVisualState especifica que, quando a propriedade for true, a ThumbColorIsToggled propriedade será definida como verde primavera média. O OffVisualState especifica que quando a propriedade for false, a ThumbColorIsToggled propriedade será definida como vermelho. Portanto, o efeito geral é que quando o está em uma posição off, seu polegar é vermelho, e seu polegar é verde primavera média quando o SwitchSwitch está em uma posição on:

Screenshot of Switch on VisualState.Screenshot of Switch off VisualState.

Para obter mais informações sobre estados visuais, consulte Estados visuais.

Desativar um comutador

Um aplicativo pode entrar em um estado em que a Switch alternância não é uma operação válida. Nesses casos, o pode ser desabilitado Switch definindo sua IsEnabled propriedade como false. Isso impedirá que os usuários possam manipular o Switch.