ToggleSwitch
Ein Kippschalter für Ein/Aus, das sofort wirkt. IsOn ist zweiwertig, der Knopf gleitet; OnContent und OffContent beschriften den jeweiligen Zustand.


KXAML
ToggleSwitchSeite.kxaml
<StackPanel xmlns="https://ui.kuonen.org/kxaml"
xmlns:x="https://ui.kuonen.org/kxaml/x"
x:Class="Kuonen.UI.Galerie.Seiten.ToggleSwitchVorfuehrung"
Spacing="12">
<StackPanel Orientation="Horizontal" Spacing="16">
<TextBlock Text="WLAN" Width="120" VerticalAlignment="Center" />
<ToggleSwitch OffContent="Aus" OnContent="Ein" Checked="Wlan_Checked" Unchecked="Wlan_Unchecked" />
</StackPanel>
<TextBlock x:Name="Meldung" Text="WLAN ist aus." />
<StackPanel Orientation="Horizontal" Spacing="24">
<ToggleSwitch OffContent="Aus" OnContent="Ein" IsOn="True" />
<ToggleSwitch OffContent="Deaktiviert" OnContent="Deaktiviert" IsEnabled="False" />
<ToggleSwitch OffContent="Deaktiviert" OnContent="Deaktiviert, ein" IsOn="True" IsEnabled="False" />
</StackPanel>
</StackPanel>ToggleSwitchSeite.kxaml.cs
using Kuonen.UI;
using Kuonen.UI.Ereignisse;
namespace Kuonen.UI.Galerie.Seiten;
public sealed partial class ToggleSwitchSeite
{
protected override Func<UIElement>? KxamlFabrik => () => new ToggleSwitchVorfuehrung();
}
/// <summary>KXAML-Fassung der ToggleSwitch-Seite: der Baum steht in ToggleSwitchSeite.kxaml, hier nur das Verhalten.</summary>
public sealed partial class ToggleSwitchVorfuehrung
{
public ToggleSwitchVorfuehrung() => InitializeComponent();
private void Wlan_Checked(object sender, RoutedEventArgs e) => Meldung.Text = "WLAN ist ein.";
private void Wlan_Unchecked(object sender, RoutedEventArgs e) => Meldung.Text = "WLAN ist aus.";
}C#
ToggleSwitchSeite.cs
using Kuonen.UI;
using Kuonen.UI.Controls;
using Kuonen.UI.Layout;
namespace Kuonen.UI.Galerie.Seiten;
/// <summary>Galerie-Seite: <see cref="ToggleSwitch"/>.</summary>
public sealed partial class ToggleSwitchSeite : GalerieSeite
{
public override string Titel => "ToggleSwitch";
public override string Beschreibung =>
"Ein Kippschalter für Ein/Aus, das sofort wirkt. IsOn ist zweiwertig, der Knopf gleitet; OnContent und "
+ "OffContent beschriften den jeweiligen Zustand.";
public override string Stichworte => "Kippschalter Schalter Ein Aus IsOn OnContent OffContent umschalten";
public override string Datei => nameof(ToggleSwitchSeite);
public override UIElement Baue()
{
var meldung = new TextBlock { Text = "WLAN ist aus." };
var wlan = new ToggleSwitch { OffContent = "Aus", OnContent = "Ein" };
wlan.Checked += (_, _) => meldung.Text = "WLAN ist ein.";
wlan.Unchecked += (_, _) => meldung.Text = "WLAN ist aus.";
var zeile = new StackPanel { Orientation = Orientation.Horizontal, Spacing = 16 };
zeile.Children.Add(new TextBlock { Text = "WLAN", Width = 120, VerticalAlignment = VerticalAlignment.Center });
zeile.Children.Add(wlan);
var zustaende = new StackPanel { Orientation = Orientation.Horizontal, Spacing = 24 };
zustaende.Children.Add(new ToggleSwitch { OffContent = "Aus", OnContent = "Ein", IsOn = true });
zustaende.Children.Add(new ToggleSwitch { OffContent = "Deaktiviert", OnContent = "Deaktiviert", IsEnabled = false });
zustaende.Children.Add(new ToggleSwitch { OffContent = "Deaktiviert", OnContent = "Deaktiviert, ein", IsOn = true, IsEnabled = false });
var seite = new StackPanel { Spacing = 12 };
seite.Children.Add(zeile);
seite.Children.Add(meldung);
seite.Children.Add(zustaende);
return seite;
}
}