Dies kann durch Überschreiben der ToggleSwitch
‚s finden Standardstil.
Zuerst, schnappen Sie sich den Stil von here und legen Sie es in Ihre App.xaml
. genannt SwitchKnobBounds
Danach wird ein Element lokalisieren -
<Rectangle x:Name="SwitchKnobBounds"
Fill="{ThemeResource ToggleSwitchFillOn}"
Stroke="{ThemeResource ToggleSwitchStrokeOn}"
StrokeThickness="{ThemeResource ToggleSwitchOnStrokeThickness}"
Width="44" Height="20" Opacity="0" RadiusY="10" Grid.Row="2" RadiusX="10" />
Dies ist das Element, das den Grenze und Hintergrund der ToggleSwitch
darstellt. Um die Hintergrundfarbe zu ändern, können Sie einfach ToggleSwitchFillOn
mit der gewünschten Farbe ersetzen.
Da Sie es jedoch auch dynamisch im Code aktualisieren möchten, sollten Sie die Eigenschaft an eine vorhandene Abhängigkeitseigenschaft des Steuerelements ToggleSwitch
binden (andernfalls müssen Sie das Steuerelement erweitern und eigene Abhängigkeitseigenschaften hinzufügen).
Ich persönlich würde Background
verwenden und ersetzen Background="{TemplateBinding Background}"
mit Background="Transparent"
von der obersten Ebene Grid
weil ich nie wirklich notwendig, um die Steuerung eine andere Hintergrundfarbe anders als transparent zu geben.
Dann Ihre Rectangle
würde wie folgt aussehen -
<Rectangle x:Name="SwitchKnobBounds"
Fill="{TemplateBinding Background}"
Stroke="{ThemeResource ToggleSwitchStrokeOn}"
StrokeThickness="{ThemeResource ToggleSwitchOnStrokeThickness}"
Width="44" Height="20" Opacity="0" RadiusY="10" Grid.Row="2" RadiusX="10" />
Schließlich können Sie die Background
Farbe des Auf Zustand direkt in XAML oder im Code festgelegt.
<ToggleSwitch x:Name="MyToggle" Background="Green" />
oder
MyToggle.Background = Colors.Red;
Würden Sie mir bitte sagen, mehr Details darüber, wo soll ich ** SwitchKnobBounds lokalisieren **? –
Siehe den Link, den ich der Antwort angehängt habe? Gehe zum Link und suche nach dem Namen "SwitchKnobBounds". –