Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Если вы работаете над проектами, в которых важную роль играют узловые диаграммы, однако Visio или подобные коммерческие продукты выглядят чрезмерностью, обратите внимание на проект NetworkView: Клиентский элемент управления WPF для визуализации и редактирования сетей, графов и блок-схем, расположенный на сайте CodeProject.
Я не встречал элементов управления, подобных этому, которые бы были одновременно свободно распространяемыми, с открытым исходным кодом и в значительной степени завершенными. Мне понравилось не только как работают проекты примеров (что уже хорошо), но и наведенный глянец, вроде этого окна подсказки.
Но что даже лучше самого элемента управления, так это глубина сопровождающей статьи.
«В статье изучается использование и реализация пользовательского элемента управления WPF, применяемого для отображения и редактирования диаграмм, графов и блок-схем. NetworkView, как я его назвал, был вдохновлен и во многом похож на стандартные WPF-элементы ItemsControl and TreeView. В статье и в примерах кода показано, как использовать эти элементы из XAML и из кода C#.
Статья разбита на две главные части.
В части 1 рассматривается использование элемента NetworkView с разбором прух проектов-примеров. Эта часть и секция ссылок достаточны, если вы хотите научиться использовать NetworkView.
Часть 2 посвящена деталям реализации. Она будет полезна, если вы хотите создать собственные модификации NetworkView или если вы хотите понять мой подход к разработке сложных пользовательских элементов управления в WPF.
В конце статьи располагается секция ссылок, описывающая доступные свойства, методы и команды, которые делаются видимыми NetworkView.
В предыдущих статьях я рассматривал ряд приемов WPF: использование декоративных элементов, изменение масштаба и панорамирование, привязка к позиции элемента интерфейса и самый последний перетаскивание множества выбранных элементов. NetworkView и приложение-пример используют все эти приемы. Я не буду детально рассматривать их здесь. Вместо этого, в соответствующих местах я буду ссылаться на предыдущие статьи.
NetworkView предназначен для использования с моделью представлений, специфичной для приложения. …
...
От идеи и через реализацию эти 27 страниц статьи проходят по всем существенным пунктам и далее.
Включенные исходники загружаются и запускаются без проблем. Вот снимок решения.
Код выглядит логически организованным и легко понимаемым.
А этот снимок показывает, как легко он может быть использован.
Если вам нужен этот элемент управления или вы просто хотите узнать, как можно разработать что-то подобное, статья и исходники станут интересным чтением.