private void AddRangeSliders() { _rangeSliders.Clear(); for (int i = 0; i < this.Axes.Length; i++) { RangeSlider rangeSlider = new RangeSlider(); rangeSlider.Height = _canvasHeight; rangeSlider.Width = RANGE_SLIDER_WIDTH; Canvas.SetTop(rangeSlider, 0.0); // Centralise positions if (i == 0) { Canvas.SetLeft(rangeSlider, 0.0); } else if (i == this.Axes.Length - 1) { Canvas.SetLeft(rangeSlider, (i * _xSeparation) - rangeSlider.Width); } else { Canvas.SetLeft(rangeSlider, (i * _xSeparation) - (rangeSlider.Width / 2)); } int index = _axesIndexes[i]; string axisName = _datasetModel.ColumnHeadings[index]; double[] minMax = _datasetModel.GetAxisMinMaxValues(axisName); rangeSlider.Max = minMax[1]; rangeSlider.Min = minMax[0]; rangeSlider.UpperValueChangedEvent += rangeSlider_UpperValueChangedEvent; rangeSlider.LowerValueChangedEvent += rangeSlider_LowerValueChangedEvent; _rangeSliders.Add(rangeSlider); canvas.Children.Add(rangeSlider); } }