Visual Studio 2013 support

Visual Studio 2013

I’m pleased to let you know that all Mindscape products have full support for Visual Studio 2013!

If you have have an active subscription you can download the latest nightly builds to get this new support. If your subscription has ended, you can renew it to obtain the latest builds.

Some products needed explicit support to work at all (e.g. Web Workbench), while others just have nice-to-have improvements like putting WPF controls into the toolbox for you.

Happy Coding!

Nightly news 23rd September 2013

Developer Notes

WPF Elements

  • Support for dynamically changing LineStyle.
  • Resolved dynamic scatter rendering issue and potential null reference
  • Resolved potential null reference exception.
  • Added Scheduler.IsReadOnly property.
  • Added easy way to change scheduler wing button content using SchedulerFormatter.
  • Added Ribbon control to VS toolbox.
  • DataGridColumn recylcing to resolve an override issue. (details)
  • Resolved an axis locking issue. (details)
  • Changed OutlookBar.SelectedItem to be a dependency property. (details)
  • Added OutlookBar.SelectedIndex property.
  • Added AxisPlacement.Overlay feature. (details)
  • Reapply sorting and filtering when the DataGrid ItemsSource property is changed.
  • Support for all chart values being NaN. (details)
  • Resolved a crash in DataGridCsvExporter when there is a column with no PropertyInfo.
  • Added DataGrid.ResetDisplayedItemsSource method. (details)
  • Resolved min/max axis binding issue. (details)
  • DataGrid footer and aggregates

WPF Diagrams

  • Improved alleyway centering in the A* pathfinder to resolve a routing bug. (details)


  • Improved error details when an unsupported query is issued.

As usual the free editions of the nightly builds are available right now from the downloads page, and the full editions from the store.

Nightly news, 12 August 2013

Developer Notes

WPF Elements 6.0

  • Wrapping in legends with many series.
  • Improvements to the IsChartClipped feature.
  • Added live data demo to the Sample Explorer.
  • Support for Double.PossitiveInfinity and Double.MaxValue in charts.
  • Resolved a minor issue in some of the PropertyGrid themes. (details)
  • Don’t clear selection when switching DataSeries to single selection mode. (details)
  • Category axes can never have an auto tick spacing less than 1.

WPF Diagrams 3.0

  • Resolved a potential exception in the ChartGrid when unloading and reloading a DiagramSurface. (details)
  • Resolved a potential issue caused by a cleared DiagramGrid still holding onto node events.


  • Fixed issue with dialog disappearing from the designer when minimising
  • Improve handling of setting Nullable types in projections

As usual the free editions of the nightly builds are available right now from the downloads page, and the full editions from the store.

Nightly news, 6 August 2013

Developer Notes

Lots of changes this week, in particular in our XAML products. Some bigger releases are in the works for our other product lines!

WPF Elements 6.0

  • Resolved a bug with setting the index of a DataGrid row after deleting rows while scrolled to the bottom. (details)
  • Added DateTimeIntervalDefinition IntervalFormat property. (details)
  • Added CurencyTextBox.DecimalPlaces property. (details)
  • Fix for potential index out of bounds exception.
  • Resolved minor binding error. (details)
  • MinDelta is ignored when zooming a chart with a custom MajorTickSpacing. (details)
  • Resolved DsiplayMemberBinding lost focus issue. (details)
  • Resolved a potential null reference exception. (details)
  • Resolved a DataGrid validation visual issue. (details)
  • Resolved an issue causing the DataGrid.SelectionChanged event being raised twice.
  • Resolved minor PropertyGrid editor clipping issue. (details)
  • Started implementing DataGrid filtering. (Coming soon!)

WPF Diagrams 3.0

  • Resolved some memory leaks when switching between diagrams. (details)

  • Improved icons for web app when displaying on Retina displays
  • Blog re-designed to be more mobile friendly
  • Better looking, more seductive looking trends charts.
  • YouTrack integration for connecting errors with YouTrack tickets
  • Improved the flow when paying for a plan on behalf of somebody else

As usual the free editions of the nightly builds are available right now from the downloads page, and the full editions from the store.

WPF Diagrams: Improved path routing

Our WPF Diagrams framework includes a few connection routing algorithms each with different speed and collision-detection preferences. The most impressive router of them all is the AStarPathfinder. As the name suggests, this pathfinder uses the well known A* algorithm to route the connections around all the nodes in the diagram. This algorithm is paired with a custom built data collection which functions similar to a quad-map to minimize the collision detections and thus improve performance.

The first version that was released a couple of years ago performed very well and was great at routing connections while avoid collisions with nodes and minimizing the number of bends in each connection. The main thing that it was missing however is that it did not consider parallel connection collisions. This can easily occur when there are multiple connections on a single node that follow the same path as seen in the image below. This makes it difficult for the user to follow the connections in this kind of diagram.

Old Connection Paths

A little later, we upgraded this path router to consider parallel connections. This was done by updating the A* algorithm to think of clusters of connections as obstacles to route around. This feature is enabled by passing a number into the constructor to specify the desired distance between parallel connections. This produced great results for the customer who requested this feature.

New Connection Paths

Although the results were great, the performance for much MUCH larger diagrams was almost unusable. There were also some bugs around the ordering of the connections which could cause lots of perpendicular overlaps. Considering each connection cluster as an obstacle to route around was just too much for the algorithm to handle. So we reverted the connection considerations and did some research into a 3-phase routing algorithm:

  • Phase 1: Create an imaginary grid of horizontal and vertical lines around the nodes.
  • Phase 2: For each connection, run the A* algorithm on the grid from phase 1.
  • Phase 3: Iterate through each cluster of parallel connections and order/separate them.

The first 2 phases were already in our pathfinder. The problem with the 3rd phase is that it requires the first 2 phases to have already been applied to the entire diagram in order for it to work. This would cause bad performance when dragging a node because all 3 phases would need to be re-run on the whole diagram model. We managed to solve this issue be implementing another custom data collection that could cache the post A* connection paths and very quickly return them for a given area of the diagram. This made it possible to run the 3rd phase only on the parts of the diagram that changed.

The result was a huge boost to both the performance and outcome of the AStarPathfinder on large diagrams such as the extreme case below. (Click on the image to get a better look at the magnitude of the diagram I was using for testing! :-).

Large Diagram

Got a diagram with lots of connection that needs a powerful path router? Grab these improvements right now from the current nightly build. Remember to pass in the desired connection separation value into the constructor of the AStarPathfinder your connections are using.

Thanks for reading! Happy coding :)

Tagged as WPF Diagrams


Join our mailer

You should join our newsletter! Sent monthly:

Back to Top