Вообще прикол в том что SVG и XAML это один и тот же формат :) например, конверсия из PathGeometry в SVG примитивна — где-то 10 строк кода или около того.
VItus, скажите пожалуйста, может ли wpf качественно и быстро отрисовывать большие карты (со множеством объектов: реки, дома, дороги и прочее, большие полигоны по 20к точек).
Можно использовать MultiScaleImage(DeepZoom), но он работает только в Silverlight'e. Для WPFа есть вот такой костыль, на сколько быстро он работает не знаю, но DeepZoom работает очень хорошо!
Kets, признаться, с такими полигонами в WPF не сталкивался. Подозреваю, что работать всё-таки будет не слишком быстро :) Хотя может и здесь есть свои «трюки»
Просто у нас на работе как-то попробовали поэксперементировать с WPF, отрисовывает-то он быстро, а вот зум и передвижение — сильно подтупливали. Вот мне и стало интересно спросить у знающего человека. Пробовали на 4-м .NET'е (вроде MS туда добавила кэширование в битмап) — в итоге 4Гб памяти были съедены :)
Поэтому создалось впечатление, что WPF подходит для отрисовки небольшого количества объектов.
Столкнулись с аналогичной проблемой, когда делали интерактивную карту на WPF (крутили в 3D).
При запуске анимации зуммирования, иногда появлялись рандомные лаги размером ~ в секунду.
Такое ощущение что в этот момент движек дергал какую-то ресурсоемкую функцию.
Тогда с первых двух попыток отловить причину так и не удалось.
Теоретически, можно конечно поиграться с отпимизациями которые реокмендует майкрософт… — сделать например всему Freeze(), итп (тогда до этого руки так и не дошли).
Но в целом ощущение что в какой-то момент действительно упираешся в возможности движка WPF по количеству объектов. Все-таки оно не для слишком сложных сцен. Для навороченой графики MS рекомендует XNA. :]
Рисуем карту в WPF-приложении