Высокопроизводительный контроль сюжета в WPF - PullRequest
3 голосов
/ 25 августа 2011

Я делаю некоторую работу, для которой мне нужно разработать элемент управления, это должен быть простой график, который показывает несколько точек и два ребра.

Моя проблема в том, что мне нужно показать до 16k точек,с частотой обновления 30 Гц.Кто-нибудь сделал что-то подобное? И есть какой-нибудь совет?.

Например, наследовать ли от FrameworkElement или Control (ItemsControl в этом случае).Если элемент управления наследуется от FrameworkElememt, у него может быть лучшая производительность при рисовании точек в методе OnRender, но я бы упустил функцию шаблонов, которая возникает при наследовании от Control.

Или существует другой элемент управления, который может это сделатьтам?

Заранее спасибо за ваше время.

Ответы [ 2 ]

3 голосов
/ 08 октября 2011

Я закончил с использованием InteropBitmap, это самый лучший класс рендеринга растровых изображений из WPF.

Позволяет отобразить изображение, которое вы хотите нарисовать (в памяти), а затем перерисовать его как изображение. Это было прекрасно, так как мне нужно было рисовать точки на экране.

Я получил отличную производительность (почти 50 Гц для 20k точек), я также использую PLINQ для обновления точек в памяти.

проверьте эту статью для более подробной информации ...

2 голосов
/ 25 августа 2011

Попробуйте и прочитайте о ZoomableCanvas .Я верю, что это может решить вашу проблему.Вы можете визуализировать все точки в виде маленьких прямоугольников / эллипсов внутри ZoomableCanvas.

...