Диаграмма также реагирует на двойной щелчок мыши, чтобы восстановить диапазоны по умолчанию.
Проблема в том, что диапазоны по умолчанию не те, которые я определил в коде:
Код: Выделить всё
public class PeakChartFactory : IPeakChartFactory
{
private static readonly DoubleRange DefaultXRange = new (0, 120);
private DoubleRange _CreateXRange(IEnumerable xValues)
{
var minX = xValues.Min();
var maxX = xValues.Max();
return new DoubleRange(minX, maxX);
}
[...]
}
public class PeakChartViewModel : BindableBase
{
#region Attributes and Properties
private IRange? _visibleXRange;
public IRange? VisibleXRange
{
get => _visibleXRange;
set => SetProperty(ref _visibleXRange, value);
}
private IRange? _visibleYRange;
public IRange? VisibleYRange
{
get => _visibleYRange;
set => SetProperty(ref _visibleYRange, value);
}
private ObservableCollection _renderableSeries;
public ObservableCollection RenderableSeries
{
get => _renderableSeries;
set => SetProperty(ref _renderableSeries, value);
}
private DefaultViewportManager _viewPortManager;
public DefaultViewportManager ViewPortManager
{
get => _viewPortManager;
set => SetProperty(ref _viewPortManager, value);
}
#endregion Attributes and Properties
public PeakChartViewModel()
{
RenderableSeries = new ObservableCollection();
ViewPortManager = new ReferenceCardViewportManager(this);
}
}
public class PeakChartViewModelMapper : IPeakChartViewModelMapper
{
public PeakChartViewModel PeakChartViewModel { get; }
public PeakChartViewModelMapper(PeakChartViewModel peakChartViewModel)
{
PeakChartViewModel = peakChartViewModel;
}
public void Map(ReferenceCard referenceCard)
{
PeakChartViewModel.VisibleXRange = new DoubleRange(0, 120);
PeakChartViewModel.RenderableSeries.Clear();
if (referenceCard.RenderableSeries == null)
{
return;
}
PeakChartViewModel.VisibleXRange = referenceCard.XRange;
PeakChartViewModel.RenderableSeries.Add(referenceCard.RenderableSeries);
}
}
Вместо этого я хотел бы получить дополнительное пространство по оси X (в обоих направлениях) и дополнительное пространство по оси Y (только верхняя половина).
Я использовал метод GrowBy(), но это расширяет диапазон оси в обоих направлениях.
Подробнее здесь: https://stackoverflow.com/questions/791 ... n-scichart
Мобильная версия