Browse Source

Add :dark-selector PseudoClass to ColorSpectrum

This standardizes with ColorSlider (which requires three states) but so far isn't needed in the templates.
pull/8050/head
robloo 4 years ago
parent
commit
21190ff39b
  1. 14
      src/Avalonia.Controls.ColorPicker/ColorSpectrum/ColorSpectrum.cs

14
src/Avalonia.Controls.ColorPicker/ColorSpectrum/ColorSpectrum.cs

@ -29,10 +29,11 @@ namespace Avalonia.Controls.Primitives
[TemplatePart("PART_SpectrumRectangle", typeof(Rectangle))] [TemplatePart("PART_SpectrumRectangle", typeof(Rectangle))]
[TemplatePart("PART_SpectrumOverlayEllipse", typeof(Ellipse))] [TemplatePart("PART_SpectrumOverlayEllipse", typeof(Ellipse))]
[TemplatePart("PART_SpectrumOverlayRectangle", typeof(Rectangle))] [TemplatePart("PART_SpectrumOverlayRectangle", typeof(Rectangle))]
[PseudoClasses(pcPressed, pcLargeSelector, pcLightSelector)] [PseudoClasses(pcPressed, pcLargeSelector, pcDarkSelector, pcLightSelector)]
public partial class ColorSpectrum : TemplatedControl public partial class ColorSpectrum : TemplatedControl
{ {
protected const string pcPressed = ":pressed"; protected const string pcPressed = ":pressed";
protected const string pcDarkSelector = ":dark-selector";
protected const string pcLargeSelector = ":large-selector"; protected const string pcLargeSelector = ":large-selector";
protected const string pcLightSelector = ":light-selector"; protected const string pcLightSelector = ":light-selector";
@ -556,7 +557,16 @@ namespace Avalonia.Controls.Primitives
PseudoClasses.Set(pcLargeSelector, false); PseudoClasses.Set(pcLargeSelector, false);
} }
PseudoClasses.Set(pcLightSelector, SelectionEllipseShouldBeLight()); if (SelectionEllipseShouldBeLight())
{
PseudoClasses.Set(pcDarkSelector, false);
PseudoClasses.Set(pcLightSelector, true);
}
else
{
PseudoClasses.Set(pcDarkSelector, true);
PseudoClasses.Set(pcLightSelector, false);
}
} }
private void UpdateColor(Hsv newHsv) private void UpdateColor(Hsv newHsv)

Loading…
Cancel
Save