diff --git a/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.Android/ColorPickerDemo.AvaloniaUI.Android.csproj b/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.Android/ColorPickerDemo.AvaloniaUI.Android.csproj
deleted file mode 100644
index 0e97056..0000000
--- a/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.Android/ColorPickerDemo.AvaloniaUI.Android.csproj
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
- Exe
- net7.0-android
- 21
- enable
- com.CompanyName.ColorPickerDemo.AvaloniaUI
- 1
- 1.0
- apk
- False
-
-
-
-
- Resources\drawable\Icon.png
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.Android/Icon.png b/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.Android/Icon.png
deleted file mode 100644
index 41a2a61..0000000
Binary files a/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.Android/Icon.png and /dev/null differ
diff --git a/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.Android/MainActivity.cs b/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.Android/MainActivity.cs
deleted file mode 100644
index ef0665c..0000000
--- a/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.Android/MainActivity.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using Android.App;
-using Android.Content.PM;
-using Avalonia.Android;
-
-namespace ColorPickerDemo.AvaloniaUI.Android;
-
-[Activity(Label = "ColorPickerDemo.AvaloniaUI.Android", Theme = "@style/MyTheme.NoActionBar", Icon = "@drawable/icon",
- LaunchMode = LaunchMode.SingleTop,
- ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.ScreenSize | ConfigChanges.UiMode)]
-public class MainActivity : AvaloniaMainActivity
-{
-}
\ No newline at end of file
diff --git a/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.Android/Properties/AndroidManifest.xml b/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.Android/Properties/AndroidManifest.xml
deleted file mode 100644
index 37633bb..0000000
--- a/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.Android/Properties/AndroidManifest.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.Android/Resources/drawable/splash_screen.xml b/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.Android/Resources/drawable/splash_screen.xml
deleted file mode 100644
index 2e920b4..0000000
--- a/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.Android/Resources/drawable/splash_screen.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
- -
-
-
-
-
-
-
diff --git a/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.Android/Resources/values-night/colors.xml b/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.Android/Resources/values-night/colors.xml
deleted file mode 100644
index 3d47b6f..0000000
--- a/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.Android/Resources/values-night/colors.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
- #212121
-
diff --git a/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.Android/Resources/values/colors.xml b/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.Android/Resources/values/colors.xml
deleted file mode 100644
index 59279d5..0000000
--- a/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.Android/Resources/values/colors.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
- #FFFFFF
-
diff --git a/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.Android/Resources/values/styles.xml b/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.Android/Resources/values/styles.xml
deleted file mode 100644
index 2759d29..0000000
--- a/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.Android/Resources/values/styles.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.Android/SplashActivity.cs b/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.Android/SplashActivity.cs
deleted file mode 100644
index eef6cf9..0000000
--- a/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.Android/SplashActivity.cs
+++ /dev/null
@@ -1,32 +0,0 @@
-using Android.App;
-using Android.Content;
-using Android.OS;
-using Application = Android.App.Application;
-using Avalonia;
-using Avalonia.Android;
-using Avalonia.ReactiveUI;
-
-namespace ColorPickerDemo.AvaloniaUI.Android;
-
-[Activity(Theme = "@style/MyTheme.Splash", MainLauncher = true, NoHistory = true)]
-public class SplashActivity : AvaloniaSplashActivity
-{
- protected override AppBuilder CustomizeAppBuilder(AppBuilder builder)
- {
- return base.CustomizeAppBuilder(builder)
- .WithInterFont()
- .UseReactiveUI();
- }
-
- protected override void OnCreate(Bundle? savedInstanceState)
- {
- base.OnCreate(savedInstanceState);
- }
-
- protected override void OnResume()
- {
- base.OnResume();
-
- StartActivity(new Intent(Application.Context, typeof(MainActivity)));
- }
-}
\ No newline at end of file
diff --git a/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.iOS/AppDelegate.cs b/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.iOS/AppDelegate.cs
deleted file mode 100644
index eca7f3c..0000000
--- a/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.iOS/AppDelegate.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-using Foundation;
-using UIKit;
-using Avalonia;
-using Avalonia.Controls;
-using Avalonia.iOS;
-using Avalonia.Media;
-using Avalonia.ReactiveUI;
-
-namespace ColorPickerDemo.AvaloniaUI.iOS;
-
-// The UIApplicationDelegate for the application. This class is responsible for launching the
-// User Interface of the application, as well as listening (and optionally responding) to
-// application events from iOS.
-[Register("AppDelegate")]
-public partial class AppDelegate : AvaloniaAppDelegate
-{
- protected override AppBuilder CustomizeAppBuilder(AppBuilder builder)
- {
- return base.CustomizeAppBuilder(builder)
- .WithInterFont()
- .UseReactiveUI();
- }
-}
\ No newline at end of file
diff --git a/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.iOS/ColorPickerDemo.AvaloniaUI.iOS.csproj b/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.iOS/ColorPickerDemo.AvaloniaUI.iOS.csproj
deleted file mode 100644
index cd3bf8e..0000000
--- a/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.iOS/ColorPickerDemo.AvaloniaUI.iOS.csproj
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
- Exe
- net7.0-ios
- 10.0
- manual
- enable
- iossimulator-x64
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.iOS/Entitlements.plist b/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.iOS/Entitlements.plist
deleted file mode 100644
index 0c67376..0000000
--- a/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.iOS/Entitlements.plist
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.iOS/Info.plist b/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.iOS/Info.plist
deleted file mode 100644
index eb7ed6e..0000000
--- a/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.iOS/Info.plist
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-
-
- CFBundleDisplayName
- ColorPickerDemo.AvaloniaUI
- CFBundleIdentifier
- companyName.ColorPickerDemo.AvaloniaUI
- CFBundleShortVersionString
- 1.0
- CFBundleVersion
- 1.0
- LSRequiresIPhoneOS
-
- MinimumOSVersion
- 10.0
- UIDeviceFamily
-
- 1
- 2
-
- UILaunchStoryboardName
- LaunchScreen
- UIRequiredDeviceCapabilities
-
- armv7
-
- UISupportedInterfaceOrientations
-
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationPortraitUpsideDown
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
-
- UISupportedInterfaceOrientations~ipad
-
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationPortraitUpsideDown
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
-
- UIStatusBarHidden
-
- UIViewControllerBasedStatusBarAppearance
-
-
-
diff --git a/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.iOS/Main.cs b/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.iOS/Main.cs
deleted file mode 100644
index 0889a07..0000000
--- a/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.iOS/Main.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-using UIKit;
-
-namespace ColorPickerDemo.AvaloniaUI.iOS;
-
-public class Application
-{
- // This is the main entry point of the application.
- static void Main(string[] args)
- {
- // if you want to use a different Application Delegate class from "AppDelegate"
- // you can specify it here.
- UIApplication.Main(args, null, typeof(AppDelegate));
- }
-}
\ No newline at end of file
diff --git a/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.iOS/Resources/LaunchScreen.xib b/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.iOS/Resources/LaunchScreen.xib
deleted file mode 100644
index acfef1a..0000000
--- a/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI.iOS/Resources/LaunchScreen.xib
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI/Views/MainView.axaml b/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI/Views/MainView.axaml
index 5e2d446..c611233 100644
--- a/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI/Views/MainView.axaml
+++ b/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/ColorPickerDemo.AvaloniaUI/Views/MainView.axaml
@@ -25,11 +25,13 @@
Portable Color Picker, alpha hidden, transparent hint color, hsv/hsl fractional part hidden
@@ -64,7 +67,7 @@
HSV
@@ -76,7 +79,7 @@
RGBA
diff --git a/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/Directory.Build.props b/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/Directory.Build.props
index 10ab2cd..4286ecd 100644
--- a/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/Directory.Build.props
+++ b/ColorPickerDemo/ColorPickerDemo.AvaloniaUI/Directory.Build.props
@@ -1,6 +1,6 @@
enable
- 11.2.5
+ 11.3.0
diff --git a/ColorPickerDemo/stylecop.json b/ColorPickerDemo/stylecop.json
new file mode 100644
index 0000000..e69de29
diff --git a/src/ColorPicker.AvaloniaUI/Behaviors/HexTextBoxBindingBehavior.cs b/src/ColorPicker.AvaloniaUI/Behaviors/HexTextBoxBindingBehavior.cs
index 5805146..ba99d01 100644
--- a/src/ColorPicker.AvaloniaUI/Behaviors/HexTextBoxBindingBehavior.cs
+++ b/src/ColorPicker.AvaloniaUI/Behaviors/HexTextBoxBindingBehavior.cs
@@ -7,8 +7,9 @@ namespace ColorPicker.Behaviors;
internal class HexTextBoxBindingBehavior : LostFocusUpdateBindingBehavior
{
- public static readonly StyledProperty ColorProperty = AvaloniaProperty.Register(
- "Color");
+ public static readonly StyledProperty ColorProperty =
+ AvaloniaProperty.Register(
+ "Color");
public Color Color
{
@@ -16,8 +17,9 @@ public Color Color
set => SetValue(ColorProperty, value);
}
- public static readonly StyledProperty HexConverterProperty = AvaloniaProperty.Register(
- "HexConverter");
+ public static readonly StyledProperty HexConverterProperty =
+ AvaloniaProperty.Register(
+ "HexConverter");
public ColorToHexConverter HexConverter
{
@@ -36,4 +38,4 @@ protected override void OnSubmitValue(string oldValue, string newValue)
Color = color;
}
-}
\ No newline at end of file
+}
diff --git a/src/ColorPicker.AvaloniaUI/Behaviors/LostFocusUpdateBindingBehavior.cs b/src/ColorPicker.AvaloniaUI/Behaviors/LostFocusUpdateBindingBehavior.cs
index 91ba16d..0e169bc 100644
--- a/src/ColorPicker.AvaloniaUI/Behaviors/LostFocusUpdateBindingBehavior.cs
+++ b/src/ColorPicker.AvaloniaUI/Behaviors/LostFocusUpdateBindingBehavior.cs
@@ -30,6 +30,7 @@ public string Text
protected override void OnAttached()
{
AssociatedObject.LostFocus += OnLostFocus;
+ OnBindingValueChanged();
base.OnAttached();
}
@@ -49,7 +50,7 @@ private void OnLostFocus(object sender, RoutedEventArgs e)
}
}
- private void OnBindingValueChanged()
+ protected void OnBindingValueChanged()
{
if (AssociatedObject != null)
{
@@ -61,4 +62,4 @@ protected virtual void OnSubmitValue(string oldValue, string newValue)
{
}
-}
\ No newline at end of file
+}
diff --git a/src/ColorPicker.AvaloniaUI/Behaviors/TextBoxFocusBehavior.cs b/src/ColorPicker.AvaloniaUI/Behaviors/TextBoxFocusBehavior.cs
index 164494b..ad3b3d0 100644
--- a/src/ColorPicker.AvaloniaUI/Behaviors/TextBoxFocusBehavior.cs
+++ b/src/ColorPicker.AvaloniaUI/Behaviors/TextBoxFocusBehavior.cs
@@ -7,7 +7,7 @@
namespace ColorPicker.Behaviors;
-internal class TextBoxFocusBehavior : Behavior
+public class TextBoxFocusBehavior : Behavior
{
public static readonly StyledProperty SelectOnMouseClickProperty =
AvaloniaProperty.Register(
@@ -119,4 +119,4 @@ private void AssociatedObjectPointerPressed(object sender, PointerPressedEventAr
e.Handled = true;
}
}
-}
\ No newline at end of file
+}
diff --git a/src/ColorPicker.AvaloniaUI/ColorPicker.AvaloniaUI.csproj b/src/ColorPicker.AvaloniaUI/ColorPicker.AvaloniaUI.csproj
index 76ef22a..5314ccb 100644
--- a/src/ColorPicker.AvaloniaUI/ColorPicker.AvaloniaUI.csproj
+++ b/src/ColorPicker.AvaloniaUI/ColorPicker.AvaloniaUI.csproj
@@ -1,7 +1,7 @@
- net6.0;net7.0;net8.0
+ net8.0
enable
disable
true
@@ -31,8 +31,9 @@ Originally developed for PixiEditor: https://github.com/PixiEditor/PixiEditor.
-
-
+
+
+
@@ -69,4 +70,10 @@ Originally developed for PixiEditor: https://github.com/PixiEditor/PixiEditor.
+
+
+
+ ..\..\..\..\.nuget\packages\avalonia\11.0.5\ref\net6.0\Avalonia.Base.dll
+
+
diff --git a/src/ColorPicker.AvaloniaUI/ConicGradientPad.cs b/src/ColorPicker.AvaloniaUI/ConicGradientPad.cs
new file mode 100644
index 0000000..fc3df0f
--- /dev/null
+++ b/src/ColorPicker.AvaloniaUI/ConicGradientPad.cs
@@ -0,0 +1,100 @@
+using System.ComponentModel;
+using Avalonia;
+using Avalonia.Controls;
+using Avalonia.Controls.Metadata;
+using Avalonia.Controls.Primitives;
+using Avalonia.Input;
+
+namespace ColorPicker;
+
+[TemplatePart("PART_CenterHandle", typeof(Control))]
+[TemplatePart("PART_AngleHandle", typeof(Control))]
+public class ConicGradientPad : GradientPad, INotifyPropertyChanged
+{
+ public static readonly StyledProperty CenterXProperty = AvaloniaProperty.Register(
+ nameof(CenterX));
+
+ public static readonly StyledProperty CenterYProperty = AvaloniaProperty.Register(
+ nameof(CenterY));
+
+ public static readonly StyledProperty AngleProperty = AvaloniaProperty.Register(
+ nameof(Angle));
+
+ public double Angle
+ {
+ get => GetValue(AngleProperty);
+ set => SetValue(AngleProperty, value);
+ }
+
+ public double CenterY
+ {
+ get => GetValue(CenterYProperty);
+ set => SetValue(CenterYProperty, value);
+ }
+
+ public double CenterX
+ {
+ get => GetValue(CenterXProperty);
+ set => SetValue(CenterXProperty, value);
+ }
+
+ public double EndPointX => CenterX + Math.Cos((Angle - 90) * Math.PI / 180);
+ public double EndPointY => CenterY + Math.Sin((Angle - 90) * Math.PI / 180);
+
+ private Cursor westEastCursor = new Cursor(StandardCursorType.SizeWestEast);
+ private Cursor northSouthCursor = new Cursor(StandardCursorType.SizeNorthSouth);
+
+ public Cursor CurrentAngleCursor => Angle is > 45 and < 135 || Angle is > 225 and < 315 ? northSouthCursor : westEastCursor;
+
+ public event PropertyChangedEventHandler PropertyChanged;
+
+ private Control centerHandle;
+ private Control angleHandle;
+
+ static ConicGradientPad()
+ {
+ AngleProperty.Changed.Subscribe(UpdateEnd);
+ CenterXProperty.Changed.Subscribe(UpdateEnd);
+ CenterYProperty.Changed.Subscribe(UpdateEnd);
+ }
+
+ protected override void OnApplyTemplate(TemplateAppliedEventArgs e)
+ {
+ base.OnApplyTemplate(e);
+ centerHandle = e.NameScope.Get("PART_CenterHandle");
+ angleHandle = e.NameScope.Get("PART_AngleHandle");
+
+ AddHandle(centerHandle, (x, y) =>
+ {
+ CenterX = x;
+ CenterY = y;
+
+ PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(EndPointX)));
+ PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(EndPointY)));
+ });
+
+ AddHandle(angleHandle, (x, y) =>
+ {
+ var angle = Math.Atan2(y - CenterY, x - CenterX) * 180 / Math.PI + 90;
+ if (angle < 0)
+ {
+ angle += 360;
+ }
+
+ Angle = angle;
+ PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(EndPointX)));
+ PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(EndPointY)));
+ PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(CurrentAngleCursor)));
+ });
+ }
+
+ private static void UpdateEnd(AvaloniaPropertyChangedEventArgs e)
+ {
+ if (e.Sender is ConicGradientPad pad)
+ {
+ pad.PropertyChanged?.Invoke(pad, new PropertyChangedEventArgs(nameof(EndPointX)));
+ pad.PropertyChanged?.Invoke(pad, new PropertyChangedEventArgs(nameof(EndPointY)));
+ pad.PropertyChanged?.Invoke(pad, new PropertyChangedEventArgs(nameof(CurrentAngleCursor)));
+ }
+ }
+}
diff --git a/src/ColorPicker.AvaloniaUI/Converters/PickerTypeToIntConverter.cs b/src/ColorPicker.AvaloniaUI/Converters/EnumTypeToIntConverter.cs
similarity index 68%
rename from src/ColorPicker.AvaloniaUI/Converters/PickerTypeToIntConverter.cs
rename to src/ColorPicker.AvaloniaUI/Converters/EnumTypeToIntConverter.cs
index 3fbddd2..5de9dd0 100644
--- a/src/ColorPicker.AvaloniaUI/Converters/PickerTypeToIntConverter.cs
+++ b/src/ColorPicker.AvaloniaUI/Converters/EnumTypeToIntConverter.cs
@@ -4,7 +4,7 @@
namespace ColorPicker.Converters;
-internal class PickerTypeToIntConverter
+internal class EnumTypeToIntConverter
: IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
@@ -14,6 +14,11 @@ public object Convert(object value, Type targetType, object parameter, CultureIn
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
- return (PickerType)value;
+ if (parameter is Type targetEnumType)
+ {
+ return Enum.ToObject(targetEnumType, value);
+ }
+
+ return value;
}
}
\ No newline at end of file
diff --git a/src/ColorPicker.AvaloniaUI/Converters/EqualsConverter.cs b/src/ColorPicker.AvaloniaUI/Converters/EqualsConverter.cs
new file mode 100644
index 0000000..204847f
--- /dev/null
+++ b/src/ColorPicker.AvaloniaUI/Converters/EqualsConverter.cs
@@ -0,0 +1,17 @@
+using System.Globalization;
+using Avalonia.Data.Converters;
+
+namespace ColorPicker.Converters;
+
+internal class EqualsConverter : IMultiValueConverter
+{
+ public object Convert(IList