/// <summary> /// /// </summary> /// <param name="OldValue"></param> /// <param name="NewValue"></param> protected virtual void OnColorChanged(Color OldValue, Color NewValue) { if (OldValue != NewValue) { if (SelectedComponent != null) { if (ColorChangeSource == ColorChangeSourceType.ColorPropertySet) { UpdatePlane(SelectedComponent.GetValue(NewValue).Round().ToInt32()); SelectionPoint = SelectedComponent.PointFromColor(NewValue); SelectionTransform.X = SelectionPoint.X - (SelectionPane.PixelWidth / 2.0); SelectionTransform.Y = SelectionPoint.Y - (SelectionPane.PixelHeight / 2.0); PART_Slider.Value = SelectedComponent.GetValue(NewValue); if (!SelectedComponent.IsUniform) { SelectedComponent.UpdateSlider(NormalPane, NewValue); } } if (SelectionRing == ColorSelectorRing.BlackOrWhite) { AdjustRing(NewValue); } } PART_AlphaSlider.Alpha = NewValue.A; ColorChanged?.Invoke(this, new EventArgs <Color>(NewValue)); } }
//SelectableComponentModel void OnSliderChanged(object sender, RoutedPropertyChangedEventArgs <double> e) { ColorChangeSource = ColorChangeSourceType.SliderMove; if (ProcessSliderEvents) { ProcessSliderEvents = false; Color = SelectedComponent.ColorAtPoint(SelectionPoint, (int)e.NewValue).WithAlpha(PART_AlphaSlider.Alpha); UpdatePlane(SelectedComponent.GetValue(Color).Round().ToInt32()); ProcessSliderEvents = true; } ColorChangeSource = ColorChangeSourceType.ColorPropertySet; }
/// <summary> /// /// </summary> /// <param name="Value"></param> protected virtual void OnIlluminantChanged(Illuminant Value) { UpdatePlane(SelectedComponent.GetValue(Color).Round().ToInt32()); SelectedComponent.UpdateSlider(NormalPane, Color); }