Я создаю инструмент, который сильно зависит от деревьев узлов графа.Текущая реализация сделана на Java, и я портирую ее на общую кодовую базу на C #, поэтому она может использоваться различными реализациями рендеринга, а также потому, что я хочу использовать возможности WPF для удобного интерфейса.
После просмотра в течение дня я наткнулся на различные методы рисования векторной графики через WPF.
Этот парень говорит о разных слоях в WPF, которые могут выбирать разработчики.Поскольку я сначала хочу использовать WPF PURELY для его рендеринга, я хочу работать с «Визуальным слоем».
Затем я наткнулся на такие вещи, как: DrawingVisual , GeometryDrawing , FrameworkElement / UIElement / Shapes
Итак, я немного ошеломлен всеми различными реализациями, которые в конечном итоге делают то же самое совершенно разными способами.
Библиотека Graph-Node уже портирована на C # со всей ее логикой (включая обнаружение столкновений и перетаскивание мышью).Так как он сделан с учетом графических средств визуализации (таких как XNA, SlimDX, OpenTK и т. Д.), Каков наилучший способ с точки зрения производительности для реализации средства визуализации WPF (например, он будет рисовать все, что ему говорит библиотека графов)рисовать?
По сути, результирующий элемент управления WPF действует как холст, но он должен быть СУПЕР легким и не иметь каких-либо изящных функций WPF, кроме того, что дает мне возможность рисовать круги, линии и другие фигуры :)
РЕДАКТИРОВАТЬ:
Я в основном хочу знать: как идти?Должен ли я расширить Canvas в качестве «Хоста» для моей графики, а затем добавить свою собственную реализацию UIElement?Или я могу иметь один класс, который может рисовать ВСЁ (как, например, один мега супер ультра графический).Очень похоже на переопределение OnPaint в GDI или Paint-метод в Java (который дает объект Graphics, с которым можно все делать).