From 27b08caae72b85959a53db81a77b3be766e23b40 Mon Sep 17 00:00:00 2001 From: Zhang Dian <54255897+zdpcdt@users.noreply.github.com> Date: Fri, 28 Feb 2025 16:18:41 +0800 Subject: [PATCH 1/8] misc: format ColorPicker xaml. --- .../Controls/ColorPicker.axaml | 113 +++++----- .../Controls/ColorPreviewer.axaml | 39 ++-- .../Controls/ColorSlider.axaml | 52 ++--- .../Controls/ColorSpectrum.axaml | 198 +++++++++--------- .../Controls/ColorView.axaml | 129 ++++++------ .../Controls/_index.axaml | 12 ++ src/Semi.Avalonia.ColorPicker/Index.axaml | 2 +- 7 files changed, 254 insertions(+), 291 deletions(-) create mode 100644 src/Semi.Avalonia.ColorPicker/Controls/_index.axaml diff --git a/src/Semi.Avalonia.ColorPicker/Controls/ColorPicker.axaml b/src/Semi.Avalonia.ColorPicker/Controls/ColorPicker.axaml index 27745b7..f3d894a 100644 --- a/src/Semi.Avalonia.ColorPicker/Controls/ColorPicker.axaml +++ b/src/Semi.Avalonia.ColorPicker/Controls/ColorPicker.axaml @@ -1,17 +1,8 @@ - - - - - - - @@ -30,21 +21,18 @@ HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="{DynamicResource ColorControlCheckeredBackgroundBrush}" - CornerRadius="{TemplateBinding CornerRadius, - Converter={StaticResource LeftCornerRadiusFilterConverter}}" /> + CornerRadius="{TemplateBinding CornerRadius, Converter={StaticResource LeftCornerRadiusFilterConverter}}" /> + Background="{TemplateBinding HsvColor, Converter={StaticResource ToBrushConverter}}" + CornerRadius="{TemplateBinding CornerRadius, Converter={StaticResource LeftCornerRadiusFilterConverter}}" /> - + @@ -127,7 +115,7 @@ - - - - + - - + + @@ -228,7 +216,7 @@ @@ -499,8 +483,7 @@ Margin="1,1,0,1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" - Background="{TemplateBinding HsvColor, - Converter={StaticResource ToBrushConverter}}" + Background="{TemplateBinding HsvColor,Converter={StaticResource ToBrushConverter}}" CornerRadius="{TemplateBinding CornerRadius}" /> - - - - + Orientation="Horizontal" /> - + \ No newline at end of file diff --git a/src/Semi.Avalonia.ColorPicker/Controls/ColorPreviewer.axaml b/src/Semi.Avalonia.ColorPicker/Controls/ColorPreviewer.axaml index 6ee2837..3ddd64b 100644 --- a/src/Semi.Avalonia.ColorPicker/Controls/ColorPreviewer.axaml +++ b/src/Semi.Avalonia.ColorPicker/Controls/ColorPreviewer.axaml @@ -33,17 +33,16 @@ Name="PART_AccentDecrement2Border" Grid.Column="0" Background="{TemplateBinding HsvColor, - Converter={StaticResource AccentColorConverter}, - ConverterParameter='-2'}" - CornerRadius="{TemplateBinding CornerRadius, - Converter={StaticResource LeftCornerRadiusFilterConverter}}" + Converter={StaticResource AccentColorConverter}, + ConverterParameter='-2'}" + CornerRadius="{TemplateBinding CornerRadius,Converter={StaticResource LeftCornerRadiusFilterConverter}}" Tag="-2" /> @@ -63,17 +62,16 @@ Name="PART_AccentIncrement1Border" Grid.Column="0" Background="{TemplateBinding HsvColor, - Converter={StaticResource AccentColorConverter}, - ConverterParameter='1'}" + Converter={StaticResource AccentColorConverter}, + ConverterParameter='1'}" Tag="1" /> @@ -85,12 +83,13 @@ BoxShadow="{DynamicResource ColorPreviewerMainBoxShadow}" CornerRadius="{TemplateBinding CornerRadius}"> - + @@ -100,15 +99,15 @@ HorizontalAlignment="Stretch" VerticalAlignment="Stretch" CornerRadius="{TemplateBinding CornerRadius}" - IsVisible="{TemplateBinding IsAccentColorsVisible, - Converter={x:Static BoolConverters.Not}}"> + IsVisible="{TemplateBinding IsAccentColorsVisible,Converter={x:Static BoolConverters.Not}}"> - + diff --git a/src/Semi.Avalonia.ColorPicker/Controls/ColorSlider.axaml b/src/Semi.Avalonia.ColorPicker/Controls/ColorSlider.axaml index 8b7fe64..03c6840 100644 --- a/src/Semi.Avalonia.ColorPicker/Controls/ColorSlider.axaml +++ b/src/Semi.Avalonia.ColorPicker/Controls/ColorSlider.axaml @@ -13,17 +13,15 @@ - - - - - + + + @@ -45,20 +43,16 @@ HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Fill="{DynamicResource ColorControlCheckeredBackgroundBrush}" - RadiusX="{TemplateBinding CornerRadius, - Converter={StaticResource TopLeftCornerRadiusConverter}}" - RadiusY="{TemplateBinding CornerRadius, - Converter={StaticResource BottomRightCornerRadiusConverter}}" /> + RadiusX="{TemplateBinding CornerRadius,Converter={StaticResource TopLeftCornerRadiusConverter}}" + RadiusY="{TemplateBinding CornerRadius,Converter={StaticResource BottomRightCornerRadiusConverter}}" /> + RadiusX="{TemplateBinding CornerRadius,Converter={StaticResource TopLeftCornerRadiusConverter}}" + RadiusY="{TemplateBinding CornerRadius,Converter={StaticResource BottomRightCornerRadiusConverter}}" /> + Value="{TemplateBinding Value,Mode=TwoWay}"> + RadiusX="{TemplateBinding CornerRadius,Converter={StaticResource TopLeftCornerRadiusConverter}}" + RadiusY="{TemplateBinding CornerRadius,Converter={StaticResource BottomRightCornerRadiusConverter}}" /> + RadiusX="{TemplateBinding CornerRadius,Converter={StaticResource TopLeftCornerRadiusConverter}}" + RadiusY="{TemplateBinding CornerRadius,Converter={StaticResource BottomRightCornerRadiusConverter}}" /> + Value="{TemplateBinding Value,Mode=TwoWay}"> - + \ No newline at end of file diff --git a/src/Semi.Avalonia.ColorPicker/Controls/ColorSpectrum.axaml b/src/Semi.Avalonia.ColorPicker/Controls/ColorSpectrum.axaml index 748b1f3..bbc1acc 100644 --- a/src/Semi.Avalonia.ColorPicker/Controls/ColorSpectrum.axaml +++ b/src/Semi.Avalonia.ColorPicker/Controls/ColorSpectrum.axaml @@ -1,125 +1,115 @@ - - - + + - - - - - - - - - - - - - - - - - - + Name="PART_SizingPanel" + HorizontalAlignment="Center" + VerticalAlignment="Center" + ClipToBounds="True"> + + + + + + + + + + + + + + + + - - + + - diff --git a/src/Semi.Avalonia.ColorPicker/Controls/ColorView.axaml b/src/Semi.Avalonia.ColorPicker/Controls/ColorView.axaml index e44dd1b..988e6ec 100644 --- a/src/Semi.Avalonia.ColorPicker/Controls/ColorView.axaml +++ b/src/Semi.Avalonia.ColorPicker/Controls/ColorView.axaml @@ -1,11 +1,9 @@ @@ -19,6 +17,15 @@ + + + + - - - - - - + + + + + + - - - - + + + + @@ -222,7 +229,7 @@ - - - - + - - + + @@ -323,7 +330,7 @@ - - - - - + \ No newline at end of file diff --git a/src/Semi.Avalonia.ColorPicker/Controls/_index.axaml b/src/Semi.Avalonia.ColorPicker/Controls/_index.axaml new file mode 100644 index 0000000..d18df4d --- /dev/null +++ b/src/Semi.Avalonia.ColorPicker/Controls/_index.axaml @@ -0,0 +1,12 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/Semi.Avalonia.ColorPicker/Index.axaml b/src/Semi.Avalonia.ColorPicker/Index.axaml index 32b0f04..2d4da5d 100644 --- a/src/Semi.Avalonia.ColorPicker/Index.axaml +++ b/src/Semi.Avalonia.ColorPicker/Index.axaml @@ -6,7 +6,7 @@ - + From 589221bf88ce9ecb05f0811d2bf7e94728d46c3d Mon Sep 17 00:00:00 2001 From: Zhang Dian <54255897+zdpcdt@users.noreply.github.com> Date: Sun, 9 Mar 2025 22:19:32 +0800 Subject: [PATCH 2/8] feat: index resources. --- src/Semi.Avalonia.ColorPicker/Dark.axaml | 33 ++++++++++------------- src/Semi.Avalonia.ColorPicker/Light.axaml | 33 ++++++++++------------- 2 files changed, 28 insertions(+), 38 deletions(-) diff --git a/src/Semi.Avalonia.ColorPicker/Dark.axaml b/src/Semi.Avalonia.ColorPicker/Dark.axaml index f514861..22381db 100644 --- a/src/Semi.Avalonia.ColorPicker/Dark.axaml +++ b/src/Semi.Avalonia.ColorPicker/Dark.axaml @@ -1,21 +1,16 @@ - - - - - - - - - - - - - - - - - - - inset 0 0 0 1 #1AFFFFFF, 0 4 14 #40000000 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Semi.Avalonia.ColorPicker/Light.axaml b/src/Semi.Avalonia.ColorPicker/Light.axaml index 514b984..22381db 100644 --- a/src/Semi.Avalonia.ColorPicker/Light.axaml +++ b/src/Semi.Avalonia.ColorPicker/Light.axaml @@ -1,21 +1,16 @@ - - - - - - - - - - - - - - - - - - - 0 0 1 #4A000000, 0 4 14 #1A000000 + + + + + + + + + + + + + + \ No newline at end of file From 2192aabf14dc44ee35ac601c430f38ea7ad144b0 Mon Sep 17 00:00:00 2001 From: Zhang Dian <54255897+zdpcdt@users.noreply.github.com> Date: Mon, 10 Mar 2025 10:52:12 +0800 Subject: [PATCH 3/8] feat: enhance Thumb. --- .../Controls/ColorSlider.axaml | 10 +++------- src/Semi.Avalonia.ColorPicker/Dark.axaml | 1 + src/Semi.Avalonia.ColorPicker/Light.axaml | 1 + src/Semi.Avalonia.ColorPicker/Shared.axaml | 8 ++++---- 4 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/Semi.Avalonia.ColorPicker/Controls/ColorSlider.axaml b/src/Semi.Avalonia.ColorPicker/Controls/ColorSlider.axaml index 03c6840..42f22fa 100644 --- a/src/Semi.Avalonia.ColorPicker/Controls/ColorSlider.axaml +++ b/src/Semi.Avalonia.ColorPicker/Controls/ColorSlider.axaml @@ -11,7 +11,7 @@ - + @@ -187,8 +185,6 @@ Name="ColorSliderThumb" Width="{TemplateBinding Width}" Height="{TemplateBinding Width}" - Margin="0" - Padding="0" DataContext="{TemplateBinding Value}" Theme="{StaticResource ColorSliderThumbTheme}" /> diff --git a/src/Semi.Avalonia.ColorPicker/Dark.axaml b/src/Semi.Avalonia.ColorPicker/Dark.axaml index 22381db..4c9530a 100644 --- a/src/Semi.Avalonia.ColorPicker/Dark.axaml +++ b/src/Semi.Avalonia.ColorPicker/Dark.axaml @@ -13,4 +13,5 @@ + 0 0 2 1 #FFFFFF \ No newline at end of file diff --git a/src/Semi.Avalonia.ColorPicker/Light.axaml b/src/Semi.Avalonia.ColorPicker/Light.axaml index 22381db..4c9530a 100644 --- a/src/Semi.Avalonia.ColorPicker/Light.axaml +++ b/src/Semi.Avalonia.ColorPicker/Light.axaml @@ -13,4 +13,5 @@ + 0 0 2 1 #FFFFFF \ No newline at end of file diff --git a/src/Semi.Avalonia.ColorPicker/Shared.axaml b/src/Semi.Avalonia.ColorPicker/Shared.axaml index 348f472..0b4d319 100644 --- a/src/Semi.Avalonia.ColorPicker/Shared.axaml +++ b/src/Semi.Avalonia.ColorPicker/Shared.axaml @@ -13,10 +13,10 @@ - 16 - 6 - 2 - 0 0 2 1 #FFFFFF + + + + 80 20 From af013bf9385debf91c04dcaea4abe006926ed5df Mon Sep 17 00:00:00 2001 From: Zhang Dian <54255897+zdpcdt@users.noreply.github.com> Date: Mon, 10 Mar 2025 11:04:09 +0800 Subject: [PATCH 4/8] feat: add AssemblyInfo. --- demo/Semi.Avalonia.Demo/Pages/ColorPickerDemo.axaml | 9 ++++----- src/Semi.Avalonia.ColorPicker/AssemblyInfo.cs | 3 +++ src/Semi.Avalonia.ColorPicker/Shared.axaml | 4 ++-- 3 files changed, 9 insertions(+), 7 deletions(-) create mode 100644 src/Semi.Avalonia.ColorPicker/AssemblyInfo.cs diff --git a/demo/Semi.Avalonia.Demo/Pages/ColorPickerDemo.axaml b/demo/Semi.Avalonia.Demo/Pages/ColorPickerDemo.axaml index 3eb407d..9e6f238 100644 --- a/demo/Semi.Avalonia.Demo/Pages/ColorPickerDemo.axaml +++ b/demo/Semi.Avalonia.Demo/Pages/ColorPickerDemo.axaml @@ -2,8 +2,7 @@ x:Class="Semi.Avalonia.Demo.Pages.ColorPickerDemo" xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" - xmlns:colorPicker="clr-namespace:Semi.Avalonia.ColorPicker;assembly=Semi.Avalonia.ColorPicker" - xmlns:controls="using:Avalonia.Controls" + xmlns:semi="https://irihi.tech/semi" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" d:DesignHeight="1450" @@ -33,12 +32,12 @@ - + - + @@ -47,7 +46,7 @@ ColorSpectrumShape="Box" Theme="{DynamicResource HexColorPicker}"> - + diff --git a/src/Semi.Avalonia.ColorPicker/AssemblyInfo.cs b/src/Semi.Avalonia.ColorPicker/AssemblyInfo.cs new file mode 100644 index 0000000..2c1c8f9 --- /dev/null +++ b/src/Semi.Avalonia.ColorPicker/AssemblyInfo.cs @@ -0,0 +1,3 @@ +using Avalonia.Metadata; + +[assembly: XmlnsDefinition("https://irihi.tech/semi", "Semi.Avalonia.ColorPicker")] \ No newline at end of file diff --git a/src/Semi.Avalonia.ColorPicker/Shared.axaml b/src/Semi.Avalonia.ColorPicker/Shared.axaml index 0b4d319..6c95410 100644 --- a/src/Semi.Avalonia.ColorPicker/Shared.axaml +++ b/src/Semi.Avalonia.ColorPicker/Shared.axaml @@ -1,7 +1,7 @@  + xmlns:semi="https://irihi.tech/semi"> 600 16 4 70 @@ -23,7 +23,7 @@ 48 3 - + AnchorAndGravity BottomEdgeAlignedLeft From 776ac47a980ec3f4398f55f93039232c527e8544 Mon Sep 17 00:00:00 2001 From: Zhang Dian <54255897+zdpcdt@users.noreply.github.com> Date: Mon, 10 Mar 2025 11:11:24 +0800 Subject: [PATCH 5/8] feat: ColorPicker icon. --- .../Controls/ColorPicker.axaml | 33 +++++++------------ .../Controls/ColorView.axaml | 33 +++++++------------ src/Semi.Avalonia.ColorPicker/Shared.axaml | 9 ++--- 3 files changed, 27 insertions(+), 48 deletions(-) diff --git a/src/Semi.Avalonia.ColorPicker/Controls/ColorPicker.axaml b/src/Semi.Avalonia.ColorPicker/Controls/ColorPicker.axaml index f3d894a..47f94bb 100644 --- a/src/Semi.Avalonia.ColorPicker/Controls/ColorPicker.axaml +++ b/src/Semi.Avalonia.ColorPicker/Controls/ColorPicker.axaml @@ -101,13 +101,10 @@ - - - + @@ -166,13 +163,10 @@ - - - + - - - + - - - + @@ -280,13 +277,10 @@ - - - + - - - + 16 4 70 - M1.22 20.77a4.24 4.24 0 0 1 .02-5.98l9.33-9.28-.94-.95a1.41 1.41 0 0 1 0-1.99 1.39 1.39 0 0 1 1.97 0l.95.97L14.9 1.2a4.16 4.16 0 0 1 5.89.02 4.24 4.24 0 0 1-.02 5.98l-2.3 2.28 1.02 1.02c.54.55.54 1.44 0 1.99-.55.55-1.43.55-1.97 0l-1.03-1.03-9.37 9.32a4.16 4.16 0 0 1-5.89-.02ZM12.54 7.49l1.97 1.99-9.35 9.3c-.55.55-1.42.55-1.97 0a1.41 1.41 0 0 1 .01-2l9.34-9.29Z - M2 4c0-1.1.9-2 2-2h5a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V4Zm6 13.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Zm11.59-8.91L16.4 5.4a2 2 0 0 0-2.82 0L13 6v12l6.59-6.59a2 2 0 0 0 0-2.82ZM22 16a2 2 0 0 0-2-2l-8 8h8a2 2 0 0 0 2-2v-4Z - M4 6.5a2 2 0 1 0 0-4 2 2 0 0 0 0 4ZM9.5 3a1.5 1.5 0 1 0 0 3h11a1.5 1.5 0 0 0 0-3h-11ZM8 11.5c0-.83.67-1.5 1.5-1.5h11a1.5 1.5 0 0 1 0 3h-11A1.5 1.5 0 0 1 8 11.5Zm0 7c0-.83.67-1.5 1.5-1.5h11a1.5 1.5 0 0 1 0 3h-11A1.5 1.5 0 0 1 8 18.5Zm-2-7a2 2 0 1 1-4 0 2 2 0 0 1 4 0Zm-2 9a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z - - - + + + From ea182c07f03aac1388c7f4c359597434b26f63b6 Mon Sep 17 00:00:00 2001 From: Zhang Dian <54255897+zdpcdt@users.noreply.github.com> Date: Mon, 10 Mar 2025 11:19:56 +0800 Subject: [PATCH 6/8] feat: enhance ColorPicker & redesign demo. --- .../Pages/ColorPickerDemo.axaml | 51 ++++++++----------- .../Controls/ColorPicker.axaml | 26 ++++------ src/Semi.Avalonia.ColorPicker/Shared.axaml | 4 +- 3 files changed, 33 insertions(+), 48 deletions(-) diff --git a/demo/Semi.Avalonia.Demo/Pages/ColorPickerDemo.axaml b/demo/Semi.Avalonia.Demo/Pages/ColorPickerDemo.axaml index 9e6f238..21f7804 100644 --- a/demo/Semi.Avalonia.Demo/Pages/ColorPickerDemo.axaml +++ b/demo/Semi.Avalonia.Demo/Pages/ColorPickerDemo.axaml @@ -10,18 +10,15 @@ mc:Ignorable="d"> - + - + @@ -29,63 +26,55 @@ - - + + - + - + Theme="{DynamicResource HexColorPicker}" + ColorSpectrumShape="Box"> - - + + + HsvColor="hsv(180,80%,70%)"> - - + + + Theme="{StaticResource SimpleColorPicker}" + HsvColor="hsv(180,80%,70%)" /> + Theme="{StaticResource HexSimpleColorPicker}" + HsvColor="hsv(180,80%,70%)" /> diff --git a/src/Semi.Avalonia.ColorPicker/Controls/ColorPicker.axaml b/src/Semi.Avalonia.ColorPicker/Controls/ColorPicker.axaml index 47f94bb..e295427 100644 --- a/src/Semi.Avalonia.ColorPicker/Controls/ColorPicker.axaml +++ b/src/Semi.Avalonia.ColorPicker/Controls/ColorPicker.axaml @@ -7,25 +7,18 @@ - - - - - + +