From 429048861cb4c9ba0af9e0a12acb5b6cb1a1c518 Mon Sep 17 00:00:00 2001 From: rabbitism Date: Wed, 4 Jan 2023 17:24:39 +0800 Subject: [PATCH] feat: add combobox --- src/Semi.Avalonia.Demo/MainWindow.axaml | 3 + .../Pages/ComboBoxDemo.axaml | 17 ++ .../Pages/ComboBoxDemo.axaml.cs | 18 ++ src/Semi.Avalonia/Controls/ComboBox.axaml | 215 ++++++++++++++++++ src/Semi.Avalonia/Controls/Controls.axaml | 1 + src/Semi.Avalonia/Themes/Light/ComboBox.axaml | 40 ++++ src/Semi.Avalonia/Themes/Light/Light.axaml | 1 + 7 files changed, 295 insertions(+) create mode 100644 src/Semi.Avalonia.Demo/Pages/ComboBoxDemo.axaml create mode 100644 src/Semi.Avalonia.Demo/Pages/ComboBoxDemo.axaml.cs create mode 100644 src/Semi.Avalonia/Controls/ComboBox.axaml create mode 100644 src/Semi.Avalonia/Themes/Light/ComboBox.axaml diff --git a/src/Semi.Avalonia.Demo/MainWindow.axaml b/src/Semi.Avalonia.Demo/MainWindow.axaml index e71f05f..a749050 100644 --- a/src/Semi.Avalonia.Demo/MainWindow.axaml +++ b/src/Semi.Avalonia.Demo/MainWindow.axaml @@ -22,6 +22,9 @@ + + + diff --git a/src/Semi.Avalonia.Demo/Pages/ComboBoxDemo.axaml b/src/Semi.Avalonia.Demo/Pages/ComboBoxDemo.axaml new file mode 100644 index 0000000..9c3c32c --- /dev/null +++ b/src/Semi.Avalonia.Demo/Pages/ComboBoxDemo.axaml @@ -0,0 +1,17 @@ + + + + AAA + BBB + CCC + + + diff --git a/src/Semi.Avalonia.Demo/Pages/ComboBoxDemo.axaml.cs b/src/Semi.Avalonia.Demo/Pages/ComboBoxDemo.axaml.cs new file mode 100644 index 0000000..180a1ab --- /dev/null +++ b/src/Semi.Avalonia.Demo/Pages/ComboBoxDemo.axaml.cs @@ -0,0 +1,18 @@ +using Avalonia; +using Avalonia.Controls; +using Avalonia.Markup.Xaml; + +namespace Semi.Avalonia.Demo.Pages; + +public partial class ComboBoxDemo : UserControl +{ + public ComboBoxDemo() + { + InitializeComponent(); + } + + private void InitializeComponent() + { + AvaloniaXamlLoader.Load(this); + } +} \ No newline at end of file diff --git a/src/Semi.Avalonia/Controls/ComboBox.axaml b/src/Semi.Avalonia/Controls/ComboBox.axaml new file mode 100644 index 0000000..d2d24d3 --- /dev/null +++ b/src/Semi.Avalonia/Controls/ComboBox.axaml @@ -0,0 +1,215 @@ + + + + Hello World + Hello World + Hello World + + AAA + BBB + CCC + + + AAA + BBB + CCC + + + AAA + BBB + CCC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Semi.Avalonia/Controls/Controls.axaml b/src/Semi.Avalonia/Controls/Controls.axaml index 491abfe..b3eb5de 100644 --- a/src/Semi.Avalonia/Controls/Controls.axaml +++ b/src/Semi.Avalonia/Controls/Controls.axaml @@ -4,6 +4,7 @@ + diff --git a/src/Semi.Avalonia/Themes/Light/ComboBox.axaml b/src/Semi.Avalonia/Themes/Light/ComboBox.axaml new file mode 100644 index 0000000..8f50dac --- /dev/null +++ b/src/Semi.Avalonia/Themes/Light/ComboBox.axaml @@ -0,0 +1,40 @@ + + + + + + + + + + 3 + + + + + + + + + 8 4 + 8 0 + + 0 0 8 0 #1A000000 + + + 1 + + + + + + + + + + + + + M4.08045 7.59809C4.66624 7.01231 5.61599 7.01231 6.20177 7.59809L11.8586 13.2549L17.5155 7.59809C18.1013 7.01231 19.051 7.01231 19.6368 7.59809C20.2226 8.18388 20.2226 9.13363 19.6368 9.71941L12.9193 16.4369C12.3335 17.0227 11.3838 17.0227 10.798 16.4369L4.08045 9.71941C3.49467 9.13363 3.49467 8.18388 4.08045 7.59809Z + + diff --git a/src/Semi.Avalonia/Themes/Light/Light.axaml b/src/Semi.Avalonia/Themes/Light/Light.axaml index 7aa456e..8b41c0b 100644 --- a/src/Semi.Avalonia/Themes/Light/Light.axaml +++ b/src/Semi.Avalonia/Themes/Light/Light.axaml @@ -5,6 +5,7 @@ +