private TrackBarWithSpinHelper InitializeTrackBarEditor(ColorTrackBarControl trackBar, ScrollableSpinEdit spin, Color color1, Color color2, Color color3, float min, float max, float delta)
        {
            TrackBarWithSpinHelper helper = new TrackBarWithSpinHelper(trackBar, spin);

            helper.Minimum = min;
            helper.Maximum = max;
            helper.Delta   = delta;
            trackBar.Properties.TickFrequency = (int)(10 / delta);
            trackBar.Properties.TickStyle     = TickStyle.Both;
            trackBar.Values.BeginUpdate();
            trackBar.Values.Clear();
            trackBar.Values.Add(0);
            trackBar.Values.EndUpdate();

            trackBar.Properties.Colors.BeginUpdate();
            trackBar.Properties.Colors.Add(new ColorGradientStop()
            {
                Color = color1, Position = 0.0f
            });
            trackBar.Properties.Colors.Add(new ColorGradientStop()
            {
                Color = color2, Position = 0.5f
            });
            trackBar.Properties.Colors.Add(new ColorGradientStop()
            {
                Color = color3, Position = 1.0f
            });
            trackBar.Properties.Colors.EndUpdate();

            helper.Value = 0.0f;
            return(helper);
        }
 private void InitializeToneCurveShadowsControl()
 {
     ToneShadowsEditor = InitializeTrackBarEditor(this.tbShadowsTone, this.speToneShadows, Color.FromArgb(255, 40, 40, 40), Color.Gray, Color.LightGray, -100.0f, 100.0f, 1.0f);
     ToneShadowsEditor.ValueChanged += ToneShadowsEditor_ValueChanged;
 }