From 2a343dcf019f69bc336ee6933a4feb0c6061e452 Mon Sep 17 00:00:00 2001 From: robloo Date: Mon, 21 Mar 2022 12:09:03 -0400 Subject: [PATCH] Implement :large-selector pseudo class --- .../ColorSpectrum/ColorSpectrum.cs | 28 +++++++++--------- .../Controls/ColorSpectrum.xaml | 29 ++++++++----------- 2 files changed, 27 insertions(+), 30 deletions(-) diff --git a/src/Avalonia.Controls/ColorPicker/ColorSpectrum/ColorSpectrum.cs b/src/Avalonia.Controls/ColorPicker/ColorSpectrum/ColorSpectrum.cs index d35c18115d..988d475853 100644 --- a/src/Avalonia.Controls/ColorPicker/ColorSpectrum/ColorSpectrum.cs +++ b/src/Avalonia.Controls/ColorPicker/ColorSpectrum/ColorSpectrum.cs @@ -20,9 +20,10 @@ namespace Avalonia.Controls.Primitives /// /// A two dimensional spectrum for color selection. /// - [PseudoClasses(pcLightSelector)] + [PseudoClasses(pcLargeSelector, pcLightSelector)] public partial class ColorSpectrum : TemplatedControl { + protected const string pcLargeSelector = ":large-selector"; protected const string pcLightSelector = ":light-selector"; /// @@ -514,18 +515,19 @@ namespace Avalonia.Controls.Primitives /// private void UpdatePseudoClasses() { - //if (m_isPointerPressed) - //{ - // VisualStateManager.GoToState(this, m_shouldShowLargeSelection ? "PressedLarge" : "Pressed", useTransitions); - //} - //else if (m_isPointerOver) - //{ - // VisualStateManager.GoToState(this, "PointerOver", useTransitions); - //} - //else - //{ - // VisualStateManager.GoToState(this, "Normal", useTransitions); - //} + if (_isPointerPressed) + { + PseudoClasses.Set(pcLargeSelector, _shouldShowLargeSelection); + } + else if (_isPointerOver) + { + //VisualStateManager.GoToState(this, "PointerOver", useTransitions); + PseudoClasses.Set(pcLargeSelector, false); + } + else + { + PseudoClasses.Set(pcLargeSelector, false); + } PseudoClasses.Set(pcLightSelector, SelectionEllipseShouldBeLight()); diff --git a/src/Avalonia.Themes.Fluent/Controls/ColorSpectrum.xaml b/src/Avalonia.Themes.Fluent/Controls/ColorSpectrum.xaml index 84eec272ed..13e9773940 100644 --- a/src/Avalonia.Themes.Fluent/Controls/ColorSpectrum.xaml +++ b/src/Avalonia.Themes.Fluent/Controls/ColorSpectrum.xaml @@ -52,9 +52,7 @@ Background="Transparent" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> - + - + @@ -112,11 +110,19 @@ + + + +