2016-11-07 5 views
0

У меня есть данные, которые поступают через сообщения в мой график. Это график электрического тока в течение времени (в секундах). Как я могу изменить поведение режима FitToView (или написать другое), чтобы плоттер не уменьшал масштаб и не масштабировался, чтобы соответствовать всему линейному графику, но вместо этого переместился налево, показывая, например, только 100 последних секунд?Dynamic-Data-Display WPF Изменение поведения по умолчанию ChartPlotter для перемещения вместо масштабирования

Я думал о вычислении минимумов и максимумов каждого сообщения и смене ограничений на плоттеры явным образом, но это не кажется очень оптимальным. Также из-за того, что мне пришлось бы устанавливать ограничения в кодировке, но все данные находятся в ViewModel (с использованием MVVM с калибром).

Редактирование: Я нашел функциональность для этого (добавление WidthFollowConstraint к ограничениям FitToView), но линейная диаграмма перемещается больше, чем ось, и после этого она компенсирует, где она должна быть, каждая итерация. Как это можно зафиксировать?

ответ

1

При этом я забыл ответить на этот вопрос.

Я сделал перемещение графика вместо масштаба, добавив в конструктор класса D3 Viewport2D объект MinimalSizeConstraint и FollowWidthConstraint в ConstraintCollection. Имена довольно самоочевидны. В основном это изменяет функциональность FitToView графика на желаемое поведение