private void Eh1DColorControl_ValueChanged(double relValue) { var baseColor = _colorModel.GetColorFor1DColorSurfaceFromRelativePosition(relValue); var imgSource = ColorBitmapCreator.GetBitmap(relPos => _colorModel.GetColorFor2DColorSurfaceFromRelativePosition(relPos, baseColor)); _gui2DColorControl.Set2DColorImage(imgSource); var newColor = _colorModel.GetColorFor2DColorSurfaceFromRelativePosition(_gui2DColorControl.SelectionRectangleRelativePosition, baseColor); AmendAlphaComponent(ref newColor); ChangeCurrentColor(newColor, false, false, true, true); }
private void UpdateAllAccordingToCurrentModelAndCurrentColor() { var(pos1D, pos2D) = _colorModel.GetRelativePositionsFor1Dand2DColorSurfaceFromColor(_currentColor); // update color surfaces UpdateColorSurfacePositions(pos1D, pos2D); var baseColor = _colorModel.GetColorFor1DColorSurfaceFromRelativePosition(pos1D); var imgSource1D = ColorBitmapCreator.GetBitmap(p => _colorModel.GetColorFor1DColorSurfaceFromRelativePosition(p.Y)); _gui1DColorControl.Set1DColorImage(imgSource1D); var imgSource2D = ColorBitmapCreator.GetBitmap(relPos => _colorModel.GetColorFor2DColorSurfaceFromRelativePosition(relPos, baseColor)); _gui2DColorControl.Set2DColorImage(imgSource2D); // now update components var components = _colorModel.GetComponentsForColor(_currentColor); UpdateComponentValues(() => { for (int i = 0; i < components.Length; ++i) { if (_colorModel.IsUsingByteComponents) { _guiComponents[i].Maximum = 255; _guiComponents[i].Change = 1; _guiComponents[i].DecimalPlaces = 0; } else { _guiComponents[i].Maximum = 1; _guiComponents[i].Change = 0.01M; _guiComponents[i].DecimalPlaces = 3; } _guiComponents[i].Value = (decimal)components[i]; } if (_colorModel.IsUsingByteComponents) { _guiAlphaValue.Maximum = 255; _guiAlphaValue.Change = 1; _guiAlphaValue.DecimalPlaces = 0; _guiAlphaValue.Value = _currentColor.A; } else { _guiAlphaValue.Maximum = 1; _guiAlphaValue.Change = 0.01M; _guiAlphaValue.DecimalPlaces = 3; _guiAlphaValue.Value = (decimal)_currentColor.ScA; } } ); // update labels _guiLabelComponentsType.Content = Current.Gui.GetUserFriendlyClassName(_colorModel.GetType()); var labels = _colorModel.GetNamesOfComponents(); for (int i = 0; i < labels.Length; ++i) { _guiLabelForComponents[i].Content = labels[i]; } // update visibility for (int i = 0; i < 4; ++i) { _guiLabelForComponents[i].Visibility = _guiComponents[i].Visibility = i < components.Length ? Visibility.Visible : Visibility.Hidden; } // update alternative components var altComponents = _altColorModel.GetComponentsForColor(_currentColor, Altaxo.Settings.GuiCulture.Instance); for (int i = 0; i < altComponents.Length; ++i) { _guiAltComponents[i].Text = altComponents[i]; } }