What is it?

The diagramming starter kit (DSK) is a collection of Visual Studio projects (WPF projects) which highlights various mechanisms and patterns related to diagramming in WPF. If includes

  • the Unfold project which was released earlier as lightweight diagramming library with state-of-the-art UI (boasting one of the first WPF implementations of the Office 2007 ribbon)
  • a simple MVC implementation examplifying the decoupling of the model and the WPF presentation
  • the Ignite application which contains a wealth of patterns (undo-redo, tooling, MVC and more) as well as a WPF implementation of the tree-layout, the mindmapping layout, Bezier connections and more
  • the iFold application, a modified version of the famous Family.Show (see the screenshots)

Screenshots


Features

Unfold features

  • Full undo/redo, all interface actions plug into the undo mechanism.
  • Templated XAML shapes; you can customize all shapes by inheriting from the default XAML style or define your own by binding to the code-behind via the command model of WPF and routed events.
  • Draw shapes and connections by means of the mouse on the canvas (i.e. the so-called rubberband interaction)
  • Resizing adorner, which can easily be customized.
  • Connections are just like shapes defined in XAML templates and can easily be changed by inheriting or by defining your own classes
  • Text properties can be customized (italic, bold, underline, font style, font weight, etc.)
  • 100% managed C# code
  • Shapes and connections are defined in a shape library
  • well-documented code, clean programming
  • Much code and diverse XAML techniques that will be of interest to anyone wishing to build a graphical application on top of WPF
  • Office 2007 ribbon and look-and-feel
  • Includes code to apply diverse WPF animations and effects on diagram elements (fading, explode, fade in/out…)
  • Class shape with data-binding, includes code to reflect the class members of any class in the class shape

iFold features

  • modified Family.Show application for display of ‘thoughts’ rather than genealogical information
  • straightforward to modify and to adapt to your needs
  • pleasing design
  • great fun to use

Ignite features

  • Tree and Mindmapping layout algorithm implemented as a custom panel
  • undo-redo
  • UI tools and services
  • standard diagramming with templating
  • custom connections (straight, Bezier, curved)
  • view-presenter architecture

Simple MVC

  • custom serialization
  • model-view-controller architecture
  • easy to understand

Intended audience

While this collection of WPF projects is in fact a complete covering of what one needs to create whatever diagramming control, it’s not an integrated library like Graph² or Netron. The collection is a compilation of prototypes which eventually lead to Graph² and cleaned the stage for the highly abstract and felxible architecture that Graph² represents. However, it should enable any developer with a moderate knowledge of WPF and C# to create a custom diagramming solution and it has been compiled specifically for students, academics and those for which the Graph² price is too high.