From 33eaa1edc740493303db95e7161747c7447b5e69 Mon Sep 17 00:00:00 2001 From: rabbitism Date: Tue, 3 Jan 2023 22:38:41 +0800 Subject: [PATCH] feat: add ToggleSwitch --- src/Semi.Avalonia.Demo/MainWindow.axaml | 18 +- .../Pages/ToggleSwitchDemo.axaml | 28 +++ .../Pages/ToggleSwitchDemo.axaml.cs | 18 ++ src/Semi.Avalonia/Controls/Controls.axaml | 1 + src/Semi.Avalonia/Controls/ToggleSwitch.axaml | 161 ++++++++++++++++++ src/Semi.Avalonia/Themes/Light/Light.axaml | 1 + .../Themes/Light/ToggleSwitch.axaml | 48 ++++++ 7 files changed, 270 insertions(+), 5 deletions(-) create mode 100644 src/Semi.Avalonia.Demo/Pages/ToggleSwitchDemo.axaml create mode 100644 src/Semi.Avalonia.Demo/Pages/ToggleSwitchDemo.axaml.cs create mode 100644 src/Semi.Avalonia/Controls/ToggleSwitch.axaml create mode 100644 src/Semi.Avalonia/Themes/Light/ToggleSwitch.axaml diff --git a/src/Semi.Avalonia.Demo/MainWindow.axaml b/src/Semi.Avalonia.Demo/MainWindow.axaml index e5a4b98..e71f05f 100644 --- a/src/Semi.Avalonia.Demo/MainWindow.axaml +++ b/src/Semi.Avalonia.Demo/MainWindow.axaml @@ -1,9 +1,14 @@ + x:Class="Semi.Avalonia.Demo.MainWindow" + xmlns="https://github.com/avaloniaui" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:pages="using:Semi.Avalonia.Demo.Pages" + Title="Semi.Demo" + d:DesignHeight="450" + d:DesignWidth="800" + mc:Ignorable="d"> @@ -47,5 +52,8 @@ + + + diff --git a/src/Semi.Avalonia.Demo/Pages/ToggleSwitchDemo.axaml b/src/Semi.Avalonia.Demo/Pages/ToggleSwitchDemo.axaml new file mode 100644 index 0000000..e46c580 --- /dev/null +++ b/src/Semi.Avalonia.Demo/Pages/ToggleSwitchDemo.axaml @@ -0,0 +1,28 @@ + + + + + + + diff --git a/src/Semi.Avalonia.Demo/Pages/ToggleSwitchDemo.axaml.cs b/src/Semi.Avalonia.Demo/Pages/ToggleSwitchDemo.axaml.cs new file mode 100644 index 0000000..51b02b0 --- /dev/null +++ b/src/Semi.Avalonia.Demo/Pages/ToggleSwitchDemo.axaml.cs @@ -0,0 +1,18 @@ +using Avalonia; +using Avalonia.Controls; +using Avalonia.Markup.Xaml; + +namespace Semi.Avalonia.Demo.Pages; + +public partial class ToggleSwitchDemo : UserControl +{ + public ToggleSwitchDemo() + { + InitializeComponent(); + } + + private void InitializeComponent() + { + AvaloniaXamlLoader.Load(this); + } +} \ No newline at end of file diff --git a/src/Semi.Avalonia/Controls/Controls.axaml b/src/Semi.Avalonia/Controls/Controls.axaml index 15f6d62..491abfe 100644 --- a/src/Semi.Avalonia/Controls/Controls.axaml +++ b/src/Semi.Avalonia/Controls/Controls.axaml @@ -18,6 +18,7 @@ + diff --git a/src/Semi.Avalonia/Controls/ToggleSwitch.axaml b/src/Semi.Avalonia/Controls/ToggleSwitch.axaml new file mode 100644 index 0000000..b05fb51 --- /dev/null +++ b/src/Semi.Avalonia/Controls/ToggleSwitch.axaml @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Semi.Avalonia/Themes/Light/Light.axaml b/src/Semi.Avalonia/Themes/Light/Light.axaml index 0a5a374..7aa456e 100644 --- a/src/Semi.Avalonia/Themes/Light/Light.axaml +++ b/src/Semi.Avalonia/Themes/Light/Light.axaml @@ -14,6 +14,7 @@ + diff --git a/src/Semi.Avalonia/Themes/Light/ToggleSwitch.axaml b/src/Semi.Avalonia/Themes/Light/ToggleSwitch.axaml new file mode 100644 index 0000000..b5b8a3e --- /dev/null +++ b/src/Semi.Avalonia/Themes/Light/ToggleSwitch.axaml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + 24 + 16 + 32 + 40 + 26 + 54 + 18 + 12 + 24 + + 12 + 14 + + 8 4 + 8 4 +