Мне нужно отобразить много меток на изображении WPF. Маркерами могут быть линии, круги, квадраты и т. Д., И их может быть несколько сотен.Эффективно отображать несколько маркеров на изображении WPF
Как источник изображения, так и данные маркеров обновляются каждые несколько секунд. Маркеры связаны с определенными пикселями на изображении, и их размер должен быть абсолютным по отношению к экрану (т. Е. Когда я перемещаю изображение, маркеры должны двигаться вместе с ним, но если я увеличиваю масштаб, они должны занимать одинаковое пространство как и раньше).
В настоящее время я использовал это, используя AdornerLayer
. Это решение имеет несколько проблем, но наиболее важным является то, что пользовательский интерфейс не очень хорошо под нагрузкой даже для 120 таких маркеров.
Я хотел спросить, что было бы лучшим способом реализовать это? Я думал, что из двух решений:
наследоваться от
Canvas
и убедитесь, что он признан недействительный не для каждого добавленных маркеров, но для ряда маркеров сразуСоздать элемент управления, который содержит изображения и изменения его
OnDraw
рисовать все маркеры
Я был бы признателен некоторые указатели от кого-то с опытом работы с подобной проблемой.
В итоге я получил наследство от изображения. Добавлен список маркеров, которые определяют, как отображать себя и вызывать все эти функции рендеринга в OnRender изображения. Поддержка сотен маркеров сейчас. – Dina