Как «вырастить» только половину диапазона оси в SciChart?C#

Место общения программистов C#
Ответить
Anonymous
 Как «вырастить» только половину диапазона оси в SciChart?

Сообщение Anonymous »

Я пытаюсь создать диаграмму с фиксированным диапазоном Y (0;120) и динамическим диапазоном X, в зависимости от того, какой элемент я выбрал в списке. Щелчком левой кнопки мыши можно увеличить масштаб.
Диаграмма также реагирует на двойной щелчок мыши, чтобы восстановить диапазоны по умолчанию.
Проблема в том, что диапазоны по умолчанию не те, которые я определил в коде:

Код: Выделить всё

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);
}
}

Когда я дважды щелкнул диапазоны диаграммы, они восстанавливаются путем принятия минимального и максимального значений xy.
Вместо этого я хотел бы получить дополнительное пространство по оси X (в обоих направлениях) и дополнительное пространство по оси Y (только верхняя половина).
Я использовал метод GrowBy(), но это расширяет диапазон оси в обоих направлениях.

Подробнее здесь: https://stackoverflow.com/questions/791 ... n-scichart
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»