Udostępnij za pośrednictwem


Импровизируя с сетевыми узлами – построение диаграмм с помощью WPF-элемента NetworkView

Грег Дункан

Если вы работаете над проектами, в которых важную роль играют узловые диаграммы, однако Visio или подобные коммерческие продукты выглядят чрезмерностью, обратите внимание на проект NetworkView: Клиентский элемент управления WPF для визуализации и редактирования сетей, графов и блок-схем, расположенный на сайте CodeProject.

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

clip_image002

Но что даже лучше самого элемента управления, так это глубина сопровождающей статьи.

«В статье изучается использование и реализация пользовательского элемента управления WPF, применяемого для отображения и редактирования диаграмм, графов и блок-схем. NetworkView, как я его назвал, был вдохновлен и во многом похож на стандартные WPF-элементы ItemsControl and TreeView. В статье и в примерах кода показано, как использовать эти элементы из XAML и из кода C#.

Статья разбита на две главные части.

В части 1 рассматривается использование элемента NetworkView с разбором прух проектов-примеров. Эта часть и секция ссылок достаточны, если вы хотите научиться использовать NetworkView.

Часть 2 посвящена деталям реализации. Она будет полезна, если вы хотите создать собственные модификации NetworkView или если вы хотите понять мой подход к разработке сложных пользовательских элементов управления в WPF.

В конце статьи располагается секция ссылок, описывающая доступные свойства, методы и команды, которые делаются видимыми NetworkView.

В предыдущих статьях я рассматривал ряд приемов WPF: использование декоративных элементов, изменение масштаба и панорамирование, привязка к позиции элемента интерфейса и самый последний перетаскивание множества выбранных элементов. NetworkView и приложение-пример используют все эти приемы. Я не буду детально рассматривать их здесь. Вместо этого, в соответствующих местах я буду ссылаться на предыдущие статьи.

NetworkView предназначен для использования с моделью представлений, специфичной для приложения. …

clip_image004

...

От идеи и через реализацию эти 27 страниц статьи проходят по всем существенным пунктам и далее.

Включенные исходники загружаются и запускаются без проблем. Вот снимок решения.

clip_image006

Код выглядит логически организованным и легко понимаемым.

clip_image008

А этот снимок показывает, как легко он может быть использован.

clip_image010

Если вам нужен этот элемент управления или вы просто хотите узнать, как можно разработать что-то подобное, статья и исходники станут интересным чтением.