From 52e57b14fd3f3e1e3252410764d3a81fe57e2281 Mon Sep 17 00:00:00 2001 From: rabbitism Date: Thu, 9 Feb 2023 18:43:02 +0800 Subject: [PATCH] feat: Add color picker themes. --- demo/Semi.Avalonia.Demo.Desktop/App.axaml | 1 + .../Pages/ColorPickerDemo.axaml | 37 ++ .../Pages/ColorPickerDemo.axaml.cs | 13 + .../Pages/DatePickerDemo.axaml.cs | 6 + .../Semi.Avalonia.Demo.csproj | 1 + demo/Semi.Avalonia.Demo/Views/MainView.axaml | 3 + .../ColorPicker.axaml | 3 - .../Controls/ColorPicker.axaml | 440 ++++++++++++++ .../Controls/ColorPreviewer.axaml | 118 ++++ .../Controls/ColorSlider.axaml | 220 +++++++ .../Controls/ColorSpectrum.axaml | 166 ++++++ .../Controls/ColorView.axaml | 558 ++++++++++++++++++ src/Semi.Avalonia.ColorPicker/Index.axaml | 15 +- src/Semi.Avalonia.ColorPicker/Light.axaml | 38 ++ .../Semi.Avalonia.ColorPicker.csproj | 1 + .../Controls/NumericUpDown.axaml | 5 +- src/Semi.Avalonia/Controls/TextBox.axaml | 2 +- .../Themes/Dark/NumericUpDown.axaml | 1 + .../Themes/Light/NumericUpDown.axaml | 1 + 19 files changed, 1621 insertions(+), 8 deletions(-) create mode 100644 demo/Semi.Avalonia.Demo/Pages/ColorPickerDemo.axaml create mode 100644 demo/Semi.Avalonia.Demo/Pages/ColorPickerDemo.axaml.cs delete mode 100644 src/Semi.Avalonia.ColorPicker/ColorPicker.axaml create mode 100644 src/Semi.Avalonia.ColorPicker/Controls/ColorPicker.axaml create mode 100644 src/Semi.Avalonia.ColorPicker/Controls/ColorPreviewer.axaml create mode 100644 src/Semi.Avalonia.ColorPicker/Controls/ColorSlider.axaml create mode 100644 src/Semi.Avalonia.ColorPicker/Controls/ColorSpectrum.axaml create mode 100644 src/Semi.Avalonia.ColorPicker/Controls/ColorView.axaml diff --git a/demo/Semi.Avalonia.Demo.Desktop/App.axaml b/demo/Semi.Avalonia.Demo.Desktop/App.axaml index 098f598..cb85fcd 100644 --- a/demo/Semi.Avalonia.Demo.Desktop/App.axaml +++ b/demo/Semi.Avalonia.Demo.Desktop/App.axaml @@ -7,5 +7,6 @@ + \ No newline at end of file diff --git a/demo/Semi.Avalonia.Demo/Pages/ColorPickerDemo.axaml b/demo/Semi.Avalonia.Demo/Pages/ColorPickerDemo.axaml new file mode 100644 index 0000000..5435065 --- /dev/null +++ b/demo/Semi.Avalonia.Demo/Pages/ColorPickerDemo.axaml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/demo/Semi.Avalonia.Demo/Pages/ColorPickerDemo.axaml.cs b/demo/Semi.Avalonia.Demo/Pages/ColorPickerDemo.axaml.cs new file mode 100644 index 0000000..6dbfeca --- /dev/null +++ b/demo/Semi.Avalonia.Demo/Pages/ColorPickerDemo.axaml.cs @@ -0,0 +1,13 @@ +using Avalonia; +using Avalonia.Controls; +using Avalonia.Markup.Xaml; + +namespace Semi.Avalonia.Demo.Pages; + +public partial class ColorPickerDemo : UserControl +{ + public ColorPickerDemo() + { + InitializeComponent(); + } +} \ No newline at end of file diff --git a/demo/Semi.Avalonia.Demo/Pages/DatePickerDemo.axaml.cs b/demo/Semi.Avalonia.Demo/Pages/DatePickerDemo.axaml.cs index 6f9e209..9d7ae48 100644 --- a/demo/Semi.Avalonia.Demo/Pages/DatePickerDemo.axaml.cs +++ b/demo/Semi.Avalonia.Demo/Pages/DatePickerDemo.axaml.cs @@ -1,6 +1,7 @@ using Avalonia; using Avalonia.Controls; using Avalonia.Markup.Xaml; +using Avalonia.Media; namespace Semi.Avalonia.Demo.Pages; @@ -15,4 +16,9 @@ public partial class DatePickerDemo : UserControl { AvaloniaXamlLoader.Load(this); } + + public override void Render(DrawingContext context) + { + base.Render(context); + } } \ No newline at end of file diff --git a/demo/Semi.Avalonia.Demo/Semi.Avalonia.Demo.csproj b/demo/Semi.Avalonia.Demo/Semi.Avalonia.Demo.csproj index 9ef211d..7d026cc 100644 --- a/demo/Semi.Avalonia.Demo/Semi.Avalonia.Demo.csproj +++ b/demo/Semi.Avalonia.Demo/Semi.Avalonia.Demo.csproj @@ -43,6 +43,7 @@ + diff --git a/demo/Semi.Avalonia.Demo/Views/MainView.axaml b/demo/Semi.Avalonia.Demo/Views/MainView.axaml index 158e608..c74524b 100644 --- a/demo/Semi.Avalonia.Demo/Views/MainView.axaml +++ b/demo/Semi.Avalonia.Demo/Views/MainView.axaml @@ -39,6 +39,9 @@ + + + diff --git a/src/Semi.Avalonia.ColorPicker/ColorPicker.axaml b/src/Semi.Avalonia.ColorPicker/ColorPicker.axaml deleted file mode 100644 index 9017e8d..0000000 --- a/src/Semi.Avalonia.ColorPicker/ColorPicker.axaml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/Semi.Avalonia.ColorPicker/Controls/ColorPicker.axaml b/src/Semi.Avalonia.ColorPicker/Controls/ColorPicker.axaml new file mode 100644 index 0000000..2ff2d82 --- /dev/null +++ b/src/Semi.Avalonia.ColorPicker/Controls/ColorPicker.axaml @@ -0,0 +1,440 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Semi.Avalonia.ColorPicker/Controls/ColorPreviewer.axaml b/src/Semi.Avalonia.ColorPicker/Controls/ColorPreviewer.axaml new file mode 100644 index 0000000..af816c7 --- /dev/null +++ b/src/Semi.Avalonia.ColorPicker/Controls/ColorPreviewer.axaml @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Semi.Avalonia.ColorPicker/Controls/ColorSlider.axaml b/src/Semi.Avalonia.ColorPicker/Controls/ColorSlider.axaml new file mode 100644 index 0000000..741daed --- /dev/null +++ b/src/Semi.Avalonia.ColorPicker/Controls/ColorSlider.axaml @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Semi.Avalonia.ColorPicker/Controls/ColorSpectrum.axaml b/src/Semi.Avalonia.ColorPicker/Controls/ColorSpectrum.axaml new file mode 100644 index 0000000..1ea057b --- /dev/null +++ b/src/Semi.Avalonia.ColorPicker/Controls/ColorSpectrum.axaml @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Semi.Avalonia.ColorPicker/Controls/ColorView.axaml b/src/Semi.Avalonia.ColorPicker/Controls/ColorView.axaml new file mode 100644 index 0000000..80b6429 --- /dev/null +++ b/src/Semi.Avalonia.ColorPicker/Controls/ColorView.axaml @@ -0,0 +1,558 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Semi.Avalonia.ColorPicker/Index.axaml b/src/Semi.Avalonia.ColorPicker/Index.axaml index 9017e8d..980ec64 100644 --- a/src/Semi.Avalonia.ColorPicker/Index.axaml +++ b/src/Semi.Avalonia.ColorPicker/Index.axaml @@ -1,3 +1,14 @@ - + - + + + + + + + + + + + + diff --git a/src/Semi.Avalonia.ColorPicker/Light.axaml b/src/Semi.Avalonia.ColorPicker/Light.axaml index 9017e8d..e71890d 100644 --- a/src/Semi.Avalonia.ColorPicker/Light.axaml +++ b/src/Semi.Avalonia.ColorPicker/Light.axaml @@ -1,3 +1,41 @@ + + + + + + + + + 600 + 16 4 + 70 + + + + + M6.92,19L5,17.08L13.06,9L15,10.94M20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L13.84,6.41L11.91,4.5L10.5,5.91L11.92,7.33L3,16.25V21H7.75L16.67,12.08L18.09,13.5L19.5,12.09L17.58,10.17L20.7,7.05C21.1,6.65 21.1,6 20.71,5.63Z + + + M17.5,12A1.5,1.5 0 0,1 16,10.5A1.5,1.5 0 0,1 17.5,9A1.5,1.5 0 0,1 19,10.5A1.5,1.5 0 0,1 17.5,12M14.5,8A1.5,1.5 0 0,1 13,6.5A1.5,1.5 0 0,1 14.5,5A1.5,1.5 0 0,1 16,6.5A1.5,1.5 0 0,1 14.5,8M9.5,8A1.5,1.5 0 0,1 8,6.5A1.5,1.5 0 0,1 9.5,5A1.5,1.5 0 0,1 11,6.5A1.5,1.5 0 0,1 9.5,8M6.5,12A1.5,1.5 0 0,1 5,10.5A1.5,1.5 0 0,1 6.5,9A1.5,1.5 0 0,1 8,10.5A1.5,1.5 0 0,1 6.5,12M12,3A9,9 0 0,0 3,12A9,9 0 0,0 12,21A1.5,1.5 0 0,0 13.5,19.5C13.5,19.11 13.35,18.76 13.11,18.5C12.88,18.23 12.73,17.88 12.73,17.5A1.5,1.5 0 0,1 14.23,16H16A5,5 0 0,0 21,11C21,6.58 16.97,3 12,3Z + + + M4 6.5C5.10457 6.5 6 5.60457 6 4.5C6 3.39543 5.10457 2.5 4 2.5C2.89543 2.5 2 3.39543 2 4.5C2 5.60457 2.89543 6.5 4 6.5ZM9.5 3C8.67157 3 8 3.67157 8 4.5C8 5.32843 8.67157 6 9.5 6H20.5C21.3284 6 22 5.32843 22 4.5C22 3.67157 21.3284 3 20.5 3H9.5ZM8 11.5C8 10.6716 8.67157 10 9.5 10H20.5C21.3284 10 22 10.6716 22 11.5C22 12.3284 21.3284 13 20.5 13H9.5C8.67157 13 8 12.3284 8 11.5ZM8 18.5C8 17.6716 8.67157 17 9.5 17H20.5C21.3284 17 22 17.6716 22 18.5C22 19.3284 21.3284 20 20.5 20H9.5C8.67157 20 8 19.3284 8 18.5ZM6 11.5C6 12.6046 5.10457 13.5 4 13.5C2.89543 13.5 2 12.6046 2 11.5C2 10.3954 2.89543 9.5 4 9.5C5.10457 9.5 6 10.3954 6 11.5ZM4 20.5C5.10457 20.5 6 19.6046 6 18.5C6 17.3954 5.10457 16.5 4 16.5C2.89543 16.5 2 17.3954 2 18.5C2 19.6046 2.89543 20.5 4 20.5Z + + + + + + + 16 + 8 + 2 + + + + 80 + 20 + + 0 0 14 0 #1A000000 diff --git a/src/Semi.Avalonia.ColorPicker/Semi.Avalonia.ColorPicker.csproj b/src/Semi.Avalonia.ColorPicker/Semi.Avalonia.ColorPicker.csproj index 71b6b80..d1217a7 100644 --- a/src/Semi.Avalonia.ColorPicker/Semi.Avalonia.ColorPicker.csproj +++ b/src/Semi.Avalonia.ColorPicker/Semi.Avalonia.ColorPicker.csproj @@ -4,6 +4,7 @@ net6.0;netstandard2.0 10 enable + 0.1.0-preview5 Semi.Avalonia.ColorPicker IRIHI Technology Avalonia Theme inspired by Semi Design. diff --git a/src/Semi.Avalonia/Controls/NumericUpDown.axaml b/src/Semi.Avalonia/Controls/NumericUpDown.axaml index 300bce6..cf268f8 100644 --- a/src/Semi.Avalonia/Controls/NumericUpDown.axaml +++ b/src/Semi.Avalonia/Controls/NumericUpDown.axaml @@ -2,8 +2,9 @@ + - + + CornerRadius="{TemplateBinding CornerRadius}"> + 3 diff --git a/src/Semi.Avalonia/Themes/Light/NumericUpDown.axaml b/src/Semi.Avalonia/Themes/Light/NumericUpDown.axaml index 9017e8d..60ebcd9 100644 --- a/src/Semi.Avalonia/Themes/Light/NumericUpDown.axaml +++ b/src/Semi.Avalonia/Themes/Light/NumericUpDown.axaml @@ -1,3 +1,4 @@ + 3