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_SpectrumOverlayEllipse", typeof(Ellipse))]
[TemplatePart("PART_SpectrumOverlayRectangle", typeof(Rectangle))]
[PseudoClasses(pcPressed, pcLargeSelector, pcLightSelector)]
[PseudoClasses(pcPressed, pcLargeSelector, pcDarkSelector, pcLightSelector)]
public partial class ColorSpectrum : TemplatedControl
{
protected const string pcPressed = ":pressed";
protected const string pcDarkSelector = ":dark-selector";
protected const string pcLargeSelector = ":large-selector";
protected const string pcLightSelector = ":light-selector";
@ -556,7 +557,16 @@ namespace Avalonia.Controls.Primitives
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)

Loading…
Cancel
Save