Как лучше реализовать масштабирование свеч на графике
#c_sharp #wpf #график #wpf_canvas
Нарисовал свой график на панели Canvas.
Как его рисовал я - Есть массив всех свеч, и я вывожу на панель лишь видимый диапазон
свеч, т.е. если сдвинуть график в сторону, я с каждой новой свечой рассчитаю новый
диапазон видимых свеч, очищаю Canvas.Children и данный список выведу на график, добавив
в Canvas.Children. При таком варианте я могу спокойно настраивать масштаб, при новом
расчете я нахожу максимум и минимум свеч и заношу рассчитываю высоту относительно этого.
Но данный способ слишком долгий для расчетов. И в итоге логичнее уже на графике хранить
сразу все свечи. Но вот проблема заключается тогда в видимом диапазоне. Т.е. надо в
массиве Canvas.Childern найти нужные свечи и поменять их значения Y и X, значения длины
прямоугольников и линий, которые идут вверх и вниз от них. Но будет ли это лаконичным?
На сайтах это всё происходит мгновенно, как ни крути. Может кто подсказать пожалуйста,
как лучше реализовать это? 2 картинки, с любого сайта и моей программы.
Ответы
Ответ 1
Смотрите, как можно сделать это с помощью трансформаций. Я буду выводить коллекцию
прямоугольников, для вывода буду использовать ItemsControl, у которого в качестве ItemsPanel
будет установлен Canvas. ItemsControl я оберну в Border, чтобы просто обозначить границы
графика, ну и потом он еще сыграет свою небольшую роль. Также я размещу 2 кнопки для
сдвига "окна" просмотра графика:
Комментариев нет:
Отправить комментарий