Я создаю инструмент, который в значительной степени опирается на деревья с графами node. Текущая реализация выполняется в Java, и я переношу ее на общую базу кода на С#, поэтому ее можно использовать различными реализациями рендеринга, а также потому, что я хочу использовать WPF для удобного интерфейса.
После просмотра в течение дня я наткнулся на различные методы рисования векторной графики через WPF.
Этот парень говорит о разных уровнях в WPF-разработчиках. Поскольку я хочу сначала использовать WPF PURELY для его рендеринга, я хочу работать над "Visual Layer".
Затем я встретил такие вещи, как: DrawingVisual, GeometryDrawing, FrameworkElement/UIElement/Shapes
Итак, я немного перегружен всеми различными реализациями, которые в конечном итоге делают то же самое совершенно по-другому.
Библиотека Graph- node была перенесена на С# уже со всей логикой (включая обнаружение конфликтов и перетаскивание мышью). Как это сделано с графическими рендерерами в виду (например, XNA, SlimDX, OpenTK и т.д.), Что было бы лучшим способом с точки зрения производительности для реализации рендеринга WPF (как в нем, он будет рисовать все, что говорит библиотека графов рисовать?
В принципе, результирующий элемент управления WPF действует как холст, но он должен быть SUPER легким и не иметь каких-либо опрятных функций WPF, кроме того, чтобы предоставить мне способ рисовать круги, линии и другие фигуры:)
EDIT:
В основном я хочу знать: как идти? Расширить ли Canvas как "Host" для моей графики, а затем добавить пользовательскую реализацию UIElement? Или у меня есть один класс, который может рисовать ВСЕ (как в одной мега супер ультра графике). Очень похоже на переопределение OnPaint в GDI или Paint-метод в Java (который дает объекту Graphics делать все с).