Xamarin.FormsNot Switch

Beispiel herunterladen Das Beispiel herunterladenDownload Sample Download the sample

Das- Xamarin.Forms Switch Steuerelement ist eine horizontale UMSCHALT Fläche, die vom Benutzer geändert werden kann, um zwischen den Zuständen "ein" und "aus" zu wechseln, die durch einen-Wert dargestellt werden boolean .The Xamarin.Forms Switch control is a horizontal toggle button that can be manipulated by the user to toggle between on and off states, which are represented by a boolean value. Die Switch Klasse erbt von View .The Switch class inherits from View.

Die folgenden Screenshots zeigen ein Switch Steuerelement in seinen on -und Off -UMSCHALT Zuständen unter IOS und Android:The following screenshots show a Switch control in its on and off toggle states on iOS and Android:

Screenshot von Switches in ein-und Ausschalten in IOS und AndroidScreenshot of Switches in on and off states, on iOS and Android

Das- Switch Steuerelement definiert die folgenden Eigenschaften:The Switch control defines the following properties:

  • IsToggledein boolean Wert, der angibt, ob Switch auf onfest liegt.IsToggled is a boolean value that indicates whether the Switch is on.
  • OnColorist eine Color , die sich darauf auswirkt, wie das-Objekt Switch im ein- onoder ausgeschaltet wird.OnColor is a Color that affects how the Switch is rendered in the toggled, or on, state.
  • ThumbColorist der Color des Zieh Punkts.ThumbColor is the Color of the switch thumb.

Diese Eigenschaften werden durch ein- BindableProperty Objekt unterstützt. Dies bedeutet, dass formatiert Switch werden kann und das Ziel von Daten Bindungen ist.These properties are backed by a BindableProperty object, which means the Switch can be styled and be the target of data bindings.

Das- Switch Steuerelement definiert ein- Toggled Ereignis, das ausgelöst wird, wenn die- IsToggled Eigenschaft geändert wird, entweder über eine Benutzer Bearbeitung oder eine Anwendung die-Eigenschaft festgelegt IsToggled .The Switch control defines a Toggled event that is fired when the IsToggled property changes, either through user manipulation or when an application sets the IsToggled property. Das ToggledEventArgs Objekt, das das Toggled Ereignis begleitet, verfügt über eine einzelne Eigenschaft namens Value vom Typ bool .The ToggledEventArgs object that accompanies the Toggled event has a single property named Value, of type bool. Wenn das Ereignis ausgelöst wird, gibt der Wert der Value Eigenschaft den neuen Wert der Eigenschaft an IsToggled .When the event is fired, the value of the Value property reflects the new value of the IsToggled property.

Erstellen eines SchaltersCreate a Switch

Eine Switch kann in XAML instanziiert werden.A Switch can be instantiated in XAML. IsToggledDie-Eigenschaft kann festgelegt werden, um die zu aktivieren Switch .Its IsToggled property can be set to toggle the Switch. Standardmäßig ist die- IsToggled Eigenschaft false .By default, the IsToggled property is false. Im folgenden Beispiel wird gezeigt, wie ein Switch in XAML mit dem optionalen Eigenschaften Satz instanziiert wird IsToggled :The following example shows how to instantiate a Switch in XAML with the optional IsToggled property set:

<Switch IsToggled="true"/>

Ein Switch kann auch im Code erstellt werden:A Switch can also be created in code:

Switch switchControl = new Switch { IsToggled = true };

Darstellung wechselnSwitch appearance

Zusätzlich zu den Eigenschaften, die Switch von der- View Klasse erben, Switch definiert auch die OnColor -Eigenschaft und die-Eigenschaft ThumbColor .In addition to the properties that Switch inherits from the View class, Switch also defines OnColor and ThumbColor properties. Die OnColor -Eigenschaft kann festgelegt werden, um die Farbe zu definieren Switch , wenn Sie in Ihren on -Zustand gewechselt wird, und die- ThumbColor Eigenschaft kann festgelegt werden, um den Color des Zieh Punkts zu definieren.The OnColor property can be set to define the Switch color when it is toggled to its on state, and the ThumbColor property can be set to define the Color of the switch thumb. Im folgenden Beispiel wird gezeigt, wie ein in XAML instanziiert wird, Switch wobei diese Eigenschaften festgelegt werden:The following example shows how to instantiate a Switch in XAML with these properties set:

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

Die Eigenschaften können auch beim Erstellen einer im Code festgelegt werden Switch :The properties can also be set when creating a Switch in code:

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

Der folgende Screenshot zeigt den Switch in seinen on -und Off -UMSCHALT Zuständen, bei denen die OnColor -Eigenschaft und die-Eigenschaft ThumbColor festgelegt sind:The following screenshot shows the Switch in its on and off toggle states, with the OnColor and ThumbColor properties set:

Screenshot von Switches in ein-und Ausschalten in IOS und AndroidScreenshot of Switches in on and off states, on iOS and Android

Reagieren auf eine Änderung des Wechsel StatusRespond to a Switch state change

Wenn sich die- IsToggled Eigenschaft ändert, entweder über die Benutzer Manipulation oder wenn eine Anwendung die- IsToggled Eigenschaft festlegt, wird das- Toggled Ereignis ausgelöst.When the IsToggled property changes, either through user manipulation or when an application sets the IsToggled property, the Toggled event fires. Ein Ereignishandler für dieses Ereignis kann registriert werden, um auf die Änderung zu reagieren:An event handler for this event can be registered to respond to the change:

<Switch Toggled="OnToggled" />

Die Code-Behind-Datei enthält den Handler für das- Toggled Ereignis:The code-behind file contains the handler for the Toggled event:

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

Das- sender Argument im-Ereignishandler ist der Switch Verantwortliche für das Auslösen dieses Ereignisses.The sender argument in the event handler is the Switch responsible for firing this event. Sie können die- sender Eigenschaft verwenden, um auf das- Switch Objekt zuzugreifen, oder um zwischen mehreren Objekten zu unterscheiden, Switch die denselben Toggled Ereignishandler verwenden.You can use the sender property to access the Switch object, or to distinguish between multiple Switch objects sharing the same Toggled event handler.

Der Toggled Ereignishandler kann auch im Code zugewiesen werden:The Toggled event handler can also be assigned in code:

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

Daten binden eines SchaltersData bind a Switch

Der Toggled Ereignishandler kann mithilfe von Datenbindung und Triggern gelöscht werden, um auf geänderte Statusänderungen zu reagieren Switch .The Toggled event handler can be eliminated by using data binding and triggers to respond to a Switch changing toggle states.

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

In diesem Beispiel Label verwendet einen Bindungs Ausdruck in einer DataTrigger , um die- IsToggled Eigenschaft der mit dem Namen zu überwachen Switch styleSwitch .In this example, the Label uses a binding expression in a DataTrigger to monitor the IsToggled property of the Switch named styleSwitch. Wenn diese Eigenschaft wird true , FontAttributes werden die-Eigenschaft und die-Eigenschaft des-Objekts FontSize Label geändert.When this property becomes true, the FontAttributes and FontSize properties of the Label are changed. Wenn die IsToggled -Eigenschaft zurückkehrt false , FontAttributes werden die-Eigenschaft und die-Eigenschaft FontSize des Label auf den ursprünglichen Zustand zurückgesetzt.When the IsToggled property returns to false, the FontAttributes and FontSize properties of the Label are reset to their initial state.

Weitere Informationen zu Triggern finden Sie unter Xamarin.Forms Trigger.For information about triggers, see Xamarin.Forms Triggers.

Visuelle Zustände wechselnSwitch visual states

Switchverfügt On über Off die visuellen Zustände und, die zum Initiieren einer visuellen Änderung verwendet werden können, wenn sich die- IsToggled Eigenschaft ändert.Switch has On and Off visual states that can be used to initiate a visual change when the IsToggled property changes.

Das folgende XAML-Beispiel zeigt, wie visuelle Zustände für die On Zustände und definiert werden Off :The following XAML example shows how to define visual states for the On and Off states:

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

In diesem Beispiel gibt das On VisualState an, dass die-Eigenschaft, wenn die- IsToggled Eigenschaft ist true , ThumbColor auf Mittel Spring grün festgelegt wird.In this example, the On VisualState specifies that when the IsToggled property is true, the ThumbColor property will be set to medium spring green. Der Off VisualState gibt IsToggled an, dass die-Eigenschaft, wenn die-Eigenschaft ist false , ThumbColor auf Rot festgelegt wird.The Off VisualState specifies that when the IsToggled property is false, the ThumbColor property will be set to red. Der Gesamteffekt besteht daher darin, dass der Switch Ziehpunkt in einer Off-Position rot ist und sein Ziehpunkt Mittel Spring grün ist, wenn sich das an der Switch Position befindet:Therefore, the overall effect is that when the Switch is in an off position its thumb is red, and its thumb is medium spring green when the Switch is in an on position:

Screenshot des Schalters "VisualState" unter IOS und Android Screenshot: Deaktivieren von VisualState, unter IOS und AndroidScreenshot of Switch on VisualState, on iOS and Android Screenshot of Switch off VisualState, on iOS and Android

Weitere Informationen zu visuellen Zuständen finden Sie unter Xamarin.Forms: Visual State-Manager.For more information about visual states, see Xamarin.Forms Visual State Manager.

Deaktivieren eines SchaltersDisable a Switch

Eine Anwendung kann einen Status eingeben, in dem ein-/ausgeschaltet Switch ist, der kein gültiger Vorgang ist.An application may enter a state where the Switch being toggled is not a valid operation. In solchen Fällen kann der deaktiviert werden, indem die zugehörige- Switch Eigenschaft auf festgelegt wird IsEnabled false .In such cases, the Switch can be disabled by setting its IsEnabled property to false. Dadurch wird verhindert, dass Benutzer die bearbeiten können Switch .This will prevent users from being able to manipulate the Switch.