/// <summary> /// Raises the <see cref="E:PreviewRangeChanged" /> event. /// </summary> /// <param name="e">The <see cref="PreviewRangeChangedEventArgs"/> instance containing the event data.</param> protected void OnPreviewRangeChanged(PreviewRangeChangedEventArgs e) { PreviewRangeChanged?.Invoke(e); if (PreviewRangeChangedCommand != null && PreviewRangeChangedCommand.CanExecute(e)) { PreviewRangeChangedCommand.Execute(e); } }
private void Axis_OnPreviewRangeChanged(PreviewRangeChangedEventArgs e) { var viewModel = (MainWindowModel)DataContext; var percent = viewModel.MaxRange * 0.3; if (e.PreviewMinValue < viewModel.MinValueX - percent) { e.Cancel = true; } if (e.PreviewMaxValue > viewModel.MaxValueX + percent) { e.Cancel = true; } }
private void Axis_OnPreviewRangeChanged(PreviewRangeChangedEventArgs e) { if (chartStockPrice.Series == null) { return; } //if less than -0.5, cancel limitMin = e.PreviewMinValue < AxisMin; //if greater than the number of items on our array plus a 0.5 offset, stay on max limit limitMax = e.PreviewMaxValue > AxisMax; //finally if the axis range is less than 1, cancel the event if (e.PreviewMaxValue - e.PreviewMinValue < AxisUnit * 20) { e.Cancel = true; } }
private void Axis_OnPreviewRangeChanged(PreviewRangeChangedEventArgs e) { //TODO: Решить проблему c ограничением диапозона на шкале. Он не может быть ограничеен при изменении со скролбара return; //TODO: Решить проблему, что при потере фокуса панинг работает некорректно var viewModel = ExtractViewModel(); var percent = viewModel.MaxRange * 0.3; if (e.PreviewMinValue < viewModel.MinValueX - percent) { e.Cancel = true; } if (e.PreviewMaxValue > viewModel.MaxValueX + percent) { e.Cancel = true; } }
/// <summary> /// Sets the range. /// </summary> /// <param name="min">The minimum.</param> /// <param name="max">The maximum.</param> public void SetRange(double min, double max) { var bMax = double.IsNaN(MaxValue) ? Model.TopLimit : MaxValue; var bMin = double.IsNaN(MinValue) ? Model.BotLimit : MinValue; var nMax = double.IsNaN(MaxValue) ? Model.TopLimit : MaxValue; var nMin = double.IsNaN(MinValue) ? Model.BotLimit : MinValue; var e = new RangeChangedEventArgs { Range = nMax - nMin, RightLimitChange = bMax - nMax, LeftLimitChange = bMin - nMin, Axis = this }; var pe = new PreviewRangeChangedEventArgs(e) { PreviewMaxValue = max, PreviewMinValue = min }; OnPreviewRangeChanged(pe); if (pe.Cancel) { return; } MaxValue = max; MinValue = min; Model.Chart.Updater.Run(); OnRangeChanged(e); }
private void Axis_OnPreviewRangeChanged(PreviewRangeChangedEventArgs eventargs) { ((VisualizerViewModel)DataContext)?.OnRangeChanged((long)eventargs.PreviewMinValue, (long)eventargs.PreviewMaxValue); }