<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mindscape Blog &#187; WPF Diagrams</title>
	<atom:link href="http://www.mindscapehq.com/blog/index.php/category/wpf-diagramming/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mindscapehq.com/blog</link>
	<description>The official blog of Mindscape</description>
	<lastBuildDate>Fri, 03 Feb 2012 01:48:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Nightly news, 3 February 2012</title>
		<link>http://www.mindscapehq.com/blog/index.php/2012/02/02/nightly-news-3-february-2012/</link>
		<comments>http://www.mindscapehq.com/blog/index.php/2012/02/02/nightly-news-3-february-2012/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 20:21:54 +0000</pubDate>
		<dc:creator>Ivan Towlson</dc:creator>
				<category><![CDATA[LightSpeed]]></category>
		<category><![CDATA[Web Workbench]]></category>
		<category><![CDATA[WPF Diagrams]]></category>
		<category><![CDATA[WPF Elements]]></category>

		<guid isPermaLink="false">http://www.mindscapehq.com/blog/?p=4518</guid>
		<description><![CDATA[It&#8217;s the end of another week here at Mindscape HQ and time as usual to check in on what we&#8217;ve shipped in the last seven days. Here&#8217;s what&#8217;s new in the latest nightly builds. WPF Elements Added handling for race conditions in DataGrid.BringCellIntoView and DataGrid.GetCell Fixed a bug in DataGrid.RemoveInputBinding Added DataGridColumn.AllowGrouping property, which allows [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s the end of another week here at Mindscape HQ and time as usual to check in on what we&#8217;ve shipped in the last seven days.  Here&#8217;s what&#8217;s new in the latest nightly builds.</p>
<p><a href="http://www.thepoke.co.uk/2011/11/29/23-legendary-album-covers-in-lego/?pid=6382"><img src="http://cdn.mindscapehq.com/blog/wp-content/uploads/2012/02/DeveloperNotes21.png" alt="" title="Well, Debbie Harry has certainly gone to seed.  And turned bright yellow" width="344" height="64" class="alignleft size-full wp-image-4519" /></a></p>
<p><strong>WPF Elements</strong></p>
<ul>
<li>Added handling for race conditions in DataGrid.BringCellIntoView and DataGrid.GetCell</li>
<li>Fixed a bug in DataGrid.RemoveInputBinding</li>
<li>Added DataGridColumn.AllowGrouping property, which allows you to specify that the user cannot group on that column</li>
<li>You can now template DataGrid group row headers</li>
</ul>
<p><strong>Web Workbench</strong></p>
<ul>
<li>Highlighting for Less pattern matching and guards</li>
<li>Fix for file generation error when using checkout-based source control system</li>
<li>Updated Less compiler to 1.2.1</li>
<li>Improved positioning of opening braces during Format Document</li>
<li>Fix for error with unbounded node (e.g. unclosed quote) in CoffeeScript</li>
</ul>
<p><strong>LightSpeed</strong></p>
<ul>
<li>Apply COLLATE NOCASE when creating SQLite GUID primary keys</li>
<li>Fixes relating to one-way associations when the originating side is a concrete table inheritance base class</li>
<li>Fixed migrations error with abstract classes</li>
</ul>
<p><strong>WPF Diagrams</strong></p>
<ul>
<li>Tweak to the ElbowPathfinder</li>
</ul>
<p>As always the free editions are available on the <a href="http://www.mindscapehq.com/downloads/">downloads page</a> and you can get the full editions from the <a href="http://www.mindscapehq.com/store/myaccount">store</a>.  Happy coding!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mindscapehq.com/blog/index.php/2012/02/02/nightly-news-3-february-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nightly news, 27 January 2012</title>
		<link>http://www.mindscapehq.com/blog/index.php/2012/01/26/nightly-news-27-january-2012/</link>
		<comments>http://www.mindscapehq.com/blog/index.php/2012/01/26/nightly-news-27-january-2012/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 20:11:59 +0000</pubDate>
		<dc:creator>Ivan Towlson</dc:creator>
				<category><![CDATA[LightSpeed]]></category>
		<category><![CDATA[WPF Diagrams]]></category>
		<category><![CDATA[WPF Elements]]></category>

		<guid isPermaLink="false">http://www.mindscapehq.com/blog/?p=4431</guid>
		<description><![CDATA[The big news in this week&#8217;s nightly builds is the new hotness in the WPF Elements DataGrid. Grouping, exporting, new APIs and, well, grouping again because it&#8217;s so neat &#8212; check it out! Of course, we&#8217;ve got a bunch of other updates for you as well. Here&#8217;s what&#8217;s new this week. LightSpeed Exclude null associations [...]]]></description>
			<content:encoded><![CDATA[<p>The big news in this week&#8217;s nightly builds is the new hotness in the WPF Elements DataGrid.  Grouping, exporting, new APIs and, well, grouping again because it&#8217;s so neat &#8212; <a href="http://www.mindscapehq.com/blog/index.php/2012/01/25/fresh-wpf-elements-5-features-datagrid-grouping-and-exporting/">check it out</a>!  Of course, we&#8217;ve got a bunch of other updates for you as well.  Here&#8217;s what&#8217;s new this week.</p>
<p><a href="http://www.buzzfeed.com/daves4/12-extremely-disappointing-facts-about-popular-mus"><img src="http://cdn.mindscapehq.com/blog/wp-content/uploads/2012/01/DeveloperNotes21.png" alt="" title="How about this one?  Have I used this one?" width="344" height="64" class="alignleft size-full wp-image-4432" /></a></p>
<p><strong>LightSpeed</strong></p>
<ul>
<li>Exclude null associations from polymorphic association validation
</li>
<li>Fix for not being able to return array values from ICompiledParameterValues to populate an IN clause
</li>
<li>Fix for LINQ projection that included the result of a Count on a join-into result when there was no Where clause
</li>
<li>When updating a SQLite database with a GUID field, set COLLATE NOCASE on the column (because it is mapped as a string rather than a native GUID type)
</li>
<li>Added support for per-table identity block size (for when new tables use KeyTable but the database also contains legacy tables which are also updated by other apps using increment-by-1 sequences)
</li>
</ul>
<p><strong>WPF Diagrams</strong></p>
<ul>
<li>DiagramConnectionPointBase.OnPositionChanged is now exposed to user derived classes
</li>
<li>Fixed a bug in the ConnectionPointRelocation sample
</li>
</ul>
<p><strong>WPF Elements</strong></p>
<ul>
<li>DataGrid hotness!
</li>
<li>Fixed a bug in TimeExplorer
</li>
</ul>
<p>As usual, you can get the updated builds of free versions from the <a href="http://www.mindscapehq.com/downloads/">downloads page</a>, and of full versions from the <a href="http://www.mindscapehq.com/store/myaccount">store</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mindscapehq.com/blog/index.php/2012/01/26/nightly-news-27-january-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nightly news, 20 January 2012</title>
		<link>http://www.mindscapehq.com/blog/index.php/2012/01/19/nightly-news-20-january-2012/</link>
		<comments>http://www.mindscapehq.com/blog/index.php/2012/01/19/nightly-news-20-january-2012/#comments</comments>
		<pubDate>Thu, 19 Jan 2012 20:41:11 +0000</pubDate>
		<dc:creator>Ivan Towlson</dc:creator>
				<category><![CDATA[LightSpeed]]></category>
		<category><![CDATA[NHibernate Designer]]></category>
		<category><![CDATA[SimpleDB Management Tools]]></category>
		<category><![CDATA[Web Workbench]]></category>
		<category><![CDATA[WPF Diagrams]]></category>
		<category><![CDATA[WPF Elements]]></category>

		<guid isPermaLink="false">http://www.mindscapehq.com/blog/?p=4345</guid>
		<description><![CDATA[Cripes! Weeks and weeks of updates to catch up on! Here&#8217;s what&#8217;s new in the nightly builds since the last update. LightSpeed Fix for one-to-one association join chain in LINQ Where clauses Added support for negated boolean expressions in LINQ Any and All Fixed a memory leak with compiled FindById queries Validation errors now provide [...]]]></description>
			<content:encoded><![CDATA[<p>Cripes!  Weeks and weeks of updates to catch up on!  Here&#8217;s what&#8217;s new in the nightly builds since the last update.</p>
<p><a href="http://www.headinjurytheater.com/article73.htm"><img src="http://cdn.mindscapehq.com/blog/wp-content/uploads/2012/01/DeveloperNotes2.png" alt="" title="And I can no longer remember which easter eggs I&#039;ve already used" width="344" height="64" class="alignleft size-full wp-image-4346" /></a></p>
<p><strong>LightSpeed</strong></p>
<ul>
<li>Fix for one-to-one association join chain in LINQ Where clauses
</li>
<li>Added support for negated boolean expressions in LINQ Any and All
</li>
<li>Fixed a memory leak with compiled FindById queries
</li>
<li>Validation errors now provide access to the validation rule instance
</li>
<li>Include schema in auto-joined tables being joined by an identifier expression
</li>
<li>Fixed automatic date-time range validation for Oracle
</li>
<li>Improved support for SQL Server 2008 TIME data type
</li>
<li>Fixed an issue where a query with criteria on the left and a logical combination on the right could be processed incorrectly
</li>
<li>Fix for DeletedOn column being incorrectly aliased in update/delete queries
</li>
<li>Added support for deleting by LINQ query
</li>
<li>Added Procedure and Scale options to ProcedureParameter class
</li>
<li>Fix for procedure parameters of user-defined types in designer being generated into wrapper function signatures as object instead of strongly typed
</li>
<li>Fix for value objects not being handled correctly in batch updates
</li>
<li>Fixed exception if you put DiscriminatorAttribute on a root entity class
</li>
<li>We now raise an exception if a SQL Server stored procedure calls RAISERROR (sic: what is this, guys, Fortran?) <em>after</em> performing a successful SELECT (previously only errors raised before the SELECT would cause exceptions)
</li>
<li>Added a property for migration code to access the connection string of the database being migrated
</li>
<li>When a stored procedure sets an out parameter to SQL NULL, we now translate this to CLR null instead of leaving it as DBNull.Value (this fixes casting errors in strong-typed wrapper methods)
</li>
<li>Fix for virtual (non-mapped) discriminators not being populated on insert
</li>
<li>Entity- and interface-level query filtering (in progress and subject to change)
</li>
</ul>
<p><strong>Web Workbench</strong></p>
<ul>
<li>Collapsing support for non-top-level regions
</li>
<li>Sass and Less Format Document command
</li>
<li>Fixed issue in Sass compilation if install path included non-ANSI characters
</li>
<li>Fixed JavaScript minifier mangling non-ANSI characters
</li>
<li>Upgraded CoffeeScript compiler to 1.2.0
</li>
<li>CoffeeScript comment highlighting fixes
</li>
<li>Comment/uncomment block support
</li>
<li>Performance improvements when making many deletes from a document
</li>
<li>Error checking and signature help for Sass and Less built-in functions
</li>
</ul>
<p><strong>WPF Elements<br />
</strong></p>
<ul>
<li>Continuing improvements to control themes
</li>
<li>Fixes for potential issues in TimeExplorer, Chart, ChartAxis and PieSeries
</li>
<li>Added option for rounding on lost focus in NumericTextBox
</li>
<li>Added ResetZoom command for charts
</li>
<li>MajorTickSpacing now keeps consistent tick density as user zooms
</li>
<li>Added PieSeries.SelectedDataPointChanged event
</li>
<li>Improvements to automatic bar chart width calculation
</li>
<li>Fixed error when changing chart highlight mode
</li>
<li>Fixed an issue with horizontal bar charts using categories along the Y axis
</li>
<li>Resolved a DataGrid issue
</li>
<li>Fixed foreground colours not being respected in CurrencyTextBox
</li>
<li>Fixed potential null reference error when changing DataGrid.ItemsSource
</li>
<li>Fixed some issues with chart default axes
</li>
</ul>
<p><strong>WPF Diagrams</strong></p>
<ul>
<li>Added TreeLayoutAlgorithm
</li>
<li>Fixed null reference error in ConnectionPointThumb
</li>
<li>Fixed a diagram binding issue
</li>
<li>Fix for a bug that was stealing mouse wheel and scroll events
</li>
<li>Added an option to turn off infinite scrolling
</li>
</ul>
<p><strong>NHibernate Designer</strong></p>
<ul>
<li>Added support for NHibernate sql-insert, sql-update and sql-delete overrides
</li>
<li>Added support for stored procedures and named SQL queries
</li>
</ul>
<p><strong>SimpleDB Management Tools</strong></p>
<ul>
<li>No longer need to click away from a row to ensure it is saved</li>
</ul>
<p>As usual you can get the latest nightly builds from the <a href="http://www.mindscapehq.com/downloads/">Downloads page</a> (free editions) or the <a href="http://www.mindscapehq.com/store/myaccount">store</a> (full editions).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mindscapehq.com/blog/index.php/2012/01/19/nightly-news-20-january-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kick start 2012 with this special offer!</title>
		<link>http://www.mindscapehq.com/blog/index.php/2012/01/12/kick-start-2012-with-this-special-offer/</link>
		<comments>http://www.mindscapehq.com/blog/index.php/2012/01/12/kick-start-2012-with-this-special-offer/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 08:36:04 +0000</pubDate>
		<dc:creator>John-Daniel Trask</dc:creator>
				<category><![CDATA[LightSpeed]]></category>
		<category><![CDATA[MegaPack]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[NHibernate Designer]]></category>
		<category><![CDATA[Phone Elements]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[Silverlight Elements]]></category>
		<category><![CDATA[SimpleDB Management Tools]]></category>
		<category><![CDATA[Web Workbench]]></category>
		<category><![CDATA[WPF Diagrams]]></category>
		<category><![CDATA[WPF Elements]]></category>

		<guid isPermaLink="false">http://www.mindscapehq.com/blog/?p=4262</guid>
		<description><![CDATA[Make building better software your New Year&#8217;s resolution by taking advantage of our 30% sale on the Mega Pack. For a limited time, pay only $699 and you&#8217;ll receive: LightSpeed O/R Mapper (normally $349) WPF Elements (normally $699) WPF Diagrams (normally $699) Silverlight Elements (normally $699) Phone Elements for WP7 (normally $299) NHibernate Designer (normally [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mindscapehq.com/productive-2012"><img src="http://cdn.mindscapehq.com/blog/wp-content/uploads/2012/01/JanuarySaleBlogImage.jpg" alt="Get 9 products for an amazing price" title="Get 9 products for an amazing price" width="718" height="450" class="alignnone size-full wp-image-4263" /></a></p>
<p>Make building better software your New Year&#8217;s resolution by <a href="http://www.mindscapehq.com/productive-2012">taking advantage of our 30% sale on the Mega Pack</a>.</p>
<p>For a limited time, pay only $699 and you&#8217;ll receive:</p>
<ul>
<li><a href="http://www.mindscapehq.com/products/lightspeed">LightSpeed O/R Mapper</a> <span style="color: rgb(192, 192, 192); ">(normally $349)</span></li>
<li><a href="http://www.mindscapehq.com/products/wpfelements">WPF Elements</a> <span style="color: rgb(192, 192, 192); ">(normally $699)</span></li>
<li><a href="http://www.mindscapehq.com/products/wpfdiagrams">WPF Diagrams</a> <span style="color: rgb(192, 192, 192); ">(normally $699)</span></li>
<li><a href="http://www.mindscapehq.com/products/silverlightelements">Silverlight Elements</a> <span style="color: rgb(192, 192, 192); ">(normally $699)</span></li>
<li><a href="http://www.mindscapehq.com/products/phone-elements">Phone Elements for WP7</a> <span style="color: rgb(192, 192, 192); ">(normally $299)</span></li>
<li><a href="http://www.mindscapehq.com/products/nhdesigner">NHibernate Designer</a> <span style="color: rgb(192, 192, 192); ">(normally $99)</span></li>
<li><a href="http://www.mindscapehq.com/products/simpledbtools">SimpleDB Management Tools</a> <span style="color: rgb(192, 192, 192); ">(normally $29)</span></span></li>
<li><a href="http://www.mindscapehq.com/products/web-workbench">Web Workbench</a> <span style="color: rgb(192, 192, 192); ">(normally $29)</span></li>
<li><a href="http://www.mindscapehq.com/products/sharepointtools">Visual Tools for SharePoint</a> <span style="color: rgb(192, 192, 192); ">(normally $349)</span></li>
</ul>
<p>Plus, you also get:</p>
<ul>
<li>12 months of new releases, nightly builds and new products!</li>
<li>The best support in the business!</li>
</ul>
<p>Imagine that &#8211; a full range of developer tools across WPF, Silverlight, Windows Phone, Data Access, Web Development and Domain Modeling for just $699!</p>
<p>So, save thousands of dollars by getting all your tools at once with our 30% off Mega Pack Special now.</p>
<p>Hurry, promotion ends 1 Feb 2012!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mindscapehq.com/blog/index.php/2012/01/12/kick-start-2012-with-this-special-offer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WPF Diagrams: New tree layout algorithm</title>
		<link>http://www.mindscapehq.com/blog/index.php/2011/12/21/wpf-diagrams-new-tree-layout-algorithm/</link>
		<comments>http://www.mindscapehq.com/blog/index.php/2011/12/21/wpf-diagrams-new-tree-layout-algorithm/#comments</comments>
		<pubDate>Wed, 21 Dec 2011 23:36:23 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[WPF Diagrams]]></category>

		<guid isPermaLink="false">http://www.mindscapehq.com/blog/?p=4233</guid>
		<description><![CDATA[In the latest nightly build of WPF Diagrams is a new layout algorithm for displaying tree like structures. The TreeLayoutAlgorithm is much smarter than the existing layout algorithm when it comes to positioning the nodes, handling cycles and managing nodes that have multiple parents. It also makes it easy for you to customize the vertical [...]]]></description>
			<content:encoded><![CDATA[<p>In the <a href="https://www.mindscapehq.com/products/wpfdiagrams/nightly-builds">latest nightly build</a> of <a href="https://www.mindscapehq.com/products/wpfdiagrams">WPF Diagrams</a> is a new layout algorithm for displaying tree like structures. The TreeLayoutAlgorithm is much smarter than the existing layout algorithm when it comes to positioning the nodes, handling cycles and managing nodes that have multiple parents. It also makes it easy for you to customize the vertical and horizontal spacings between nodes, using the LayerSpacing and NodeSpacing properties. Here is an example of a diagram being managed by a TreeLayoutAlgorithm and using an A* pathfinder for routing the connections.</p>
<p><a href="http://cdn.mindscapehq.com/blog/wp-content/uploads/2011/12/TreeLayoutAlgorithm.png"><img src="http://cdn.mindscapehq.com/blog/wp-content/uploads/2011/12/TreeLayoutAlgorithm.png" alt="WPF Diagrams Tree layout algorithm" title="WPF Diagrams Tree layout algorithm" width="549" height="490" class="alignnone size-full wp-image-4234" /></a></p>
<p>Using a layout algorithm is incredibly simple. All you need to do is create an instance of the layout algorithm of choice, then pass it into the ApplyLayoutAlgorithm method on the DiagramSurface.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">ILayoutAlgorithm layout <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> TreeLayoutAlgorithm<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
ds<span style="color: #008000;">.</span><span style="color: #0000FF;">ApplyLayoutAlgorithm</span><span style="color: #008000;">&#40;</span>layout<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></pre></div></div>

<p>If you need a tree based layout for your diagramming application, then <a href="https://www.mindscapehq.com/products/wpfdiagrams/nightly-builds">download the latest nightly builds</a> and you&#8217;ll be pleased with the results. If you have any questions about WPF Diagrams, <a href="https://www.mindscapehq.com/forums/forum/19">then we would love to hear from you in our forum</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mindscapehq.com/blog/index.php/2011/12/21/wpf-diagrams-new-tree-layout-algorithm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nightly news, 21 October 2011</title>
		<link>http://www.mindscapehq.com/blog/index.php/2011/10/20/nightly-news-21-october-2011/</link>
		<comments>http://www.mindscapehq.com/blog/index.php/2011/10/20/nightly-news-21-october-2011/#comments</comments>
		<pubDate>Thu, 20 Oct 2011 20:29:11 +0000</pubDate>
		<dc:creator>Ivan Towlson</dc:creator>
				<category><![CDATA[LightSpeed]]></category>
		<category><![CDATA[Nightly news]]></category>
		<category><![CDATA[Web Workbench]]></category>
		<category><![CDATA[WPF Diagrams]]></category>
		<category><![CDATA[WPF Elements]]></category>

		<guid isPermaLink="false">http://www.mindscapehq.com/blog/?p=3873</guid>
		<description><![CDATA[So, last week Web Workbench, this week NHibernate Designer&#8230; will next week be WPF Elements 5? Stay tuned! In the meantime, here&#8217;s what else we&#8217;ve delivered this week. WPF Elements Added support for automatic ranges on alternate Y axes Fix for a design-time issue with the RadialGauge control Added limited control over data sampling Fixed [...]]]></description>
			<content:encoded><![CDATA[<p>So, last week Web Workbench, this week NHibernate Designer&#8230; will next week be WPF Elements 5?  Stay tuned!  In the meantime, here&#8217;s what else we&#8217;ve delivered this week.</p>
<p><a href="http://www.geekosystem.com/fat-cat-art/"><img src="http://cdn.mindscapehq.com/blog/wp-content/uploads/2011/10/DeveloperNotes2.png" alt="" title="Have I already done this one? What the heck. You can never have enough fat mogs." width="344" height="64" class="alignleft size-full wp-image-3876" /></a></p>
<p><strong>WPF Elements</strong></p>
<ul>
<li>Added support for automatic ranges on alternate Y axes</li>
<li>Fix for a design-time issue with the RadialGauge control</li>
<li>Added limited control over data sampling</li>
<li>Fixed a bug where tooltips could not be applied to line series</li>
<li>Initial support for tick marks on the RadialGauge control</li>
</ul>
<p><strong>LightSpeed</strong></p>
<ul>
<li>Enhancements to native projection support</li>
</ul>
<p><strong>WPF Diagrams</strong></p>
<ul>
<li>Added option to include connections in marquee selects</li>
</ul>
<p><strong>Web Workbench</strong></p>
<ul>
<li>Better handling of Unix-style line endings</li>
<li>Fixed spurious squiggly on CSS escape syntax</li>
<li>Fix for non-Latin literals in CoffeeScript</li>
</ul>
<p>You can download the updates right now &#8212; <a href="http://www.mindscapehq.com/downloads/">free editions from the downloads page</a>, <a href="http://www.mindscapehq.com/store/myaccount">full editions from the store</a>.  (Web Workbench auto-updates through the Visual Studio gallery.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mindscapehq.com/blog/index.php/2011/10/20/nightly-news-21-october-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nightly news, 7 October 2011</title>
		<link>http://www.mindscapehq.com/blog/index.php/2011/10/06/nightly-news-7-october-2011/</link>
		<comments>http://www.mindscapehq.com/blog/index.php/2011/10/06/nightly-news-7-october-2011/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 20:52:54 +0000</pubDate>
		<dc:creator>Ivan Towlson</dc:creator>
				<category><![CDATA[LightSpeed]]></category>
		<category><![CDATA[NHibernate Designer]]></category>
		<category><![CDATA[Nightly news]]></category>
		<category><![CDATA[Phone Elements]]></category>
		<category><![CDATA[WPF Diagrams]]></category>
		<category><![CDATA[WPF Elements]]></category>

		<guid isPermaLink="false">http://www.mindscapehq.com/blog/?p=3834</guid>
		<description><![CDATA[Machine rebuild time here at Mindscape HQ, and very disappointed to learn that JD did not christen the rebuilt box &#8220;Mungo the Computational.&#8221; But he did go to the trouble of giving me a Steve Bell penguin for my user image, so all is forgiven. Fortunately, in between relaxing in front of the Windows 7 [...]]]></description>
			<content:encoded><![CDATA[<p>Machine rebuild time here at Mindscape HQ, and very disappointed to learn that JD did not christen the rebuilt box &#8220;Mungo the Computational.&#8221;  But he did go to the trouble of giving me a Steve Bell penguin for my user image, so all is forgiven.  Fortunately, in between relaxing in front of the Windows 7 setup screen, we&#8217;ve also shipped a bunch of updates in the latest nightly builds.  Here&#8217;s what&#8217;s new this week.</p>
<p><a href="http://blogs.discovermagazine.com/cosmicvariance/2009/10/09/the-dark-energy-song/"><img src="http://cdn.mindscapehq.com/blog/wp-content/uploads/2011/10/DeveloperNotes.png" alt="" title="We need one of these for WinRT development" width="344" height="64" class="alignleft size-full wp-image-3835" /></a></p>
<p><strong>LightSpeed</strong></p>
<ul>
<li>Some fixes around ordering across associations</li>
<li>Added support for calculation/aggregation operators over subqueries</li>
<li>Improvements to the LINQ Count() operator over projection subqueries</li>
<li>The designer defaults policy can now override the defaults for generating DataMember attributes on associations</li>
<li>Fix for associations not respecting DependentAttribute if the foreign key was a string</li>
<li>Fix for value objects in derived entities not being materialised if using FindBySql or a stored procedure, and the inheritance model was class table inheritance, and the query was through the base class</li>
</ul>
<p><strong>WPF Diagrams</strong></p>
<ul>
<li>Added hooks for customising marquee selection behaviour</li>
</ul>
<p><strong>WPF Elements</strong></p>
<ul>
<li>Automatic label step calculation for Y axes</li>
</ul>
<p><strong>Phone Elements</strong></p>
<ul>
<li>Landscape support for the palette colour picker</li>
</ul>
<p><strong>NHibernate Designer</strong></p>
<ul>
<li>Option to suppress association properties in generated code</li>
</ul>
<p>Nightly builds of <a href="http://www.mindscapehq.com/downloads/">free products are available on the Downloads page</a>; for retail editions you can <a href="http://www.mindscapehq.com/store/myaccount">get them from the store</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.mindscapehq.com/blog/index.php/2011/10/06/nightly-news-7-october-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nightly news, 9 September 2011</title>
		<link>http://www.mindscapehq.com/blog/index.php/2011/09/08/nightly-news-9-september-2011/</link>
		<comments>http://www.mindscapehq.com/blog/index.php/2011/09/08/nightly-news-9-september-2011/#comments</comments>
		<pubDate>Thu, 08 Sep 2011 22:09:49 +0000</pubDate>
		<dc:creator>Ivan Towlson</dc:creator>
				<category><![CDATA[LightSpeed]]></category>
		<category><![CDATA[NHibernate Designer]]></category>
		<category><![CDATA[Nightly news]]></category>
		<category><![CDATA[Silverlight Elements]]></category>
		<category><![CDATA[WPF Diagrams]]></category>
		<category><![CDATA[WPF Elements]]></category>

		<guid isPermaLink="false">http://www.mindscapehq.com/blog/?p=3728</guid>
		<description><![CDATA[Big anticipation here at the Mindscape office as our new Kinect accidentally falls out of its box, at the same time as the Kinect SDK accidentally installs itself onto Jason&#8217;s computer. They say accidents come in threes, so we are just waiting for Jason to accidentally write a bunch of cool Kinect programs. Stay tuned! [...]]]></description>
			<content:encoded><![CDATA[<p>Big anticipation here at the Mindscape office as our new Kinect accidentally falls out of its box, at the same time as the Kinect SDK accidentally installs itself onto Jason&#8217;s computer.  They say accidents come in threes, so we are just waiting for Jason to accidentally write a bunch of cool Kinect programs.  Stay tuned!</p>
<p>In the meantime, some rather more mundane developments in the latest nightly builds&#8230;</p>
<p><a href="http://www.thelocal.se/36002/20110907/"><img src="http://cdn.mindscapehq.com/blog/wp-content/uploads/2011/09/DeveloperNotes.png" alt="" title="Actually this is kind of reminiscent of TechEd" width="344" height="64" class="alignleft size-full wp-image-3729" /></a></p>
<p><strong>LightSpeed</strong></p>
<ul>
<li>New <a href="http://www.mindscapehq.com/blog/index.php/2011/09/04/youve-got-the-schema-now-see-the-data/">Show Data</a> command for, well, showing your data</li>
<li>Fixes for certain CTI join scenarios</li>
</ul>
<p><strong>NHibernate Designer</strong></p>
<ul>
<li>We now support per-project code generation templates for you hacker types</li>
</ul>
<p><strong>WPF Diagrams</strong></p>
<ul>
<li>Added new hit testing methods, and fixed a bug in the FindElementAtPoint method</li>
</ul>
<p><strong>WPF Elements</strong></p>
<ul>
<li>UI zooming and panning support for alternate Y axes</li>
</ul>
<p><strong>Silverlight Elements</strong></p>
<ul>
<li>UI zooming and panning support for alternate Y axes</li>
</ul>
<p>All these updates are available in the current nightly builds &#8212; <a href="http://www.mindscapehq.com/downloads/">free editions from the downloads page</a>, <a href="http://www.mindscapehq.com/store/myaccount">full editions from the store</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mindscapehq.com/blog/index.php/2011/09/08/nightly-news-9-september-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nightly news, 2 September 2011</title>
		<link>http://www.mindscapehq.com/blog/index.php/2011/09/01/nightly-news-2-september-2011/</link>
		<comments>http://www.mindscapehq.com/blog/index.php/2011/09/01/nightly-news-2-september-2011/#comments</comments>
		<pubDate>Thu, 01 Sep 2011 20:36:50 +0000</pubDate>
		<dc:creator>Ivan Towlson</dc:creator>
				<category><![CDATA[LightSpeed]]></category>
		<category><![CDATA[Nightly news]]></category>
		<category><![CDATA[Phone Elements]]></category>
		<category><![CDATA[Web Workbench]]></category>
		<category><![CDATA[WPF Diagrams]]></category>
		<category><![CDATA[WPF Elements]]></category>

		<guid isPermaLink="false">http://www.mindscapehq.com/blog/?p=3709</guid>
		<description><![CDATA[Two weeks of nightly updates to catch up on today, thanks to TechEd, so let&#8217;s get stuck in. Here&#8217;s what you&#8217;ll find in the latest hot builds. WPF Diagrams DiagramToolBox support for scroll bar visibility attached properties Node tool drag sizing is now cancelled if the user doesn&#8217;t click on the diagram surface You can [...]]]></description>
			<content:encoded><![CDATA[<p>Two weeks of nightly updates to catch up on today, thanks to TechEd, so let&#8217;s get stuck in.  Here&#8217;s what you&#8217;ll find in the latest hot builds.</p>
<p><a href="http://medievalmap.harvard.edu/icb/icb.do?keyword=k40248&#038;pageid=icb.page188868"><img src="http://cdn.mindscapehq.com/blog/wp-content/uploads/2011/08/DeveloperNotes21.png" alt="" title="It&#039;s been a historiffic kind of a week really" width="344" height="64" class="alignleft size-full wp-image-3710" /></a></p>
<p><strong>WPF Diagrams</strong></p>
<ul>
<li>DiagramToolBox support for scroll bar visibility attached properties</li>
<li>Node tool drag sizing is now cancelled if the user doesn&#8217;t click on the diagram surface</li>
<li>You can now control the heuristic function used by the A* pathfinder</li>
<li>New sample: custom shapes</li>
<li>Added an IsDragResizeEnabled property for enabling or disabling drag-sizing when using a charged cursor to create new node</li>
</ul>
<p><strong>LightSpeed</strong></p>
<ul>
<li>Fix for a spurious discriminator warning if a STI root class derived from another class using concrete table inheritance</li>
<li>We&#8217;ve relaxed the warnings for discriminators on abstract classes</li>
<li>Improved error if you set an entity to be its own direct parent.  &#8220;Doctor, it hurts when I do this.&#8221;</li>
<li>If you drag from Server Explorer and you haven&#8217;t saved your password, we&#8217;ll now try to detect this and remind you</li>
<li>Fix for error in certain grouping queries with joins</li>
<li>Email validator now accepts the &#8216;+&#8217; character in addresses</li>
<li>Improvements to find by identifier in DistributedUnitOfWork</li>
</ul>
<p><strong>Phone Elements</strong></p>
<ul>
<li>Support for styling alternate Y axes</li>
</ul>
<p><strong>WPF Elements</strong></p>
<ul>
<li>Fixed a property grid bug with keyboard navigation on expanded nodes</li>
</ul>
<p><strong>Web Workbench</strong></p>
<ul>
<li>Fixed a couple more cases where we were indicating syntax errors on correct CSS</li>
</ul>
<p><a href="http://www.mindscapehq.com/downloads/">Free editions of the nightly builds are on the downloads page</a>, and <a href="http://www.mindscapehq.com/store/myaccount">full editions are in the store</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mindscapehq.com/blog/index.php/2011/09/01/nightly-news-2-september-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WPF Diagrams: Custom Diagram Shapes</title>
		<link>http://www.mindscapehq.com/blog/index.php/2011/08/30/wpf-diagrams-custom-diagram-shapes/</link>
		<comments>http://www.mindscapehq.com/blog/index.php/2011/08/30/wpf-diagrams-custom-diagram-shapes/#comments</comments>
		<pubDate>Wed, 31 Aug 2011 00:01:38 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[WPF Diagrams]]></category>

		<guid isPermaLink="false">http://www.mindscapehq.com/blog/?p=3684</guid>
		<description><![CDATA[When creating a diagramming application, you may find that lots of different nodes in your diagram are only distinguished by their shape and number of connection points, but they all have the same connection validation and functionality. WPF Diagrams 2.0 provides a type of node called &#8220;ShapeNode&#8221; which is perfect for these scenarios. Different instances [...]]]></description>
			<content:encoded><![CDATA[<p>When creating a diagramming application, you may find that lots of different nodes in your diagram are only distinguished by their shape and number of connection points, but they all have the same connection validation and functionality. <a href="http://www.mindscapehq.com/products/wpfdiagrams">WPF Diagrams 2.0</a> provides a type of node called &#8220;ShapeNode&#8221; which is perfect for these scenarios. Different instances of ShapeNode can have completely different shapes and connection point setups. <a href="http://www.mindscapehq.com/products/wpfdiagrams">WPF Diagrams 2.0</a> includes more than 70 predefined shapes to get you started.  You can of course extend the ShapeNode class if you need to provide additional functionality and properties specific to the needs of your applications &#8212; but if all you want is a new shape, then the built-in ShapeNode class will do fine.</p>
<p>In this blog post I will show you how to define your own shapes that can be used by a ShapeNode. Defining a custom shape takes very little code, and the diagramming foundation will then automatically create the toolbox icons, cursor visuals and node templates all for you. Here is a preview of what we will be creating:</p>
<p><a href="http://www.mindscapehq.com/blog/index.php/2011/08/30/wpf-diagrams-custom-diagram-shapes/customdiagramshapesimage/" rel="attachment wp-att-3686"><img src="http://cdn.mindscapehq.com/blog/wp-content/uploads/2011/08/CustomDiagramShapesImage.png" alt="Custom diagram shapes" title="Custom diagram shapes" width="718" height="441" class="alignnone size-full wp-image-3686" /></a></p>
<p><strong>Getting started</strong></p>
<p>If you don&#8217;t already have a diagramming application that you can start adding custom shapes to, then start by <a href="http://www.mindscapehq.com/blog/index.php/2011/05/16/getting-started-with-wpf-diagrams-2-0/">reading this &#8216;getting started&#8217; blog post</a>.</p>
<p>Defining a custom shape is made up of 2 parts: a DiagramShape, and a ShapeLayout. The DiagramShape contains the logical information such as the number of connection points on each side and its display name. This is written in a C# file. The ShapeLayout provides the graphical information including the path geometries, connection point positions and path styles. This is written in a XAML resource dictionary. For all the custom shapes described in this blog post, I have put the DiagramShape definitions in a static class called CustomShapes, and the ShapeLayout definitions are in a resource dictionary in MainWindow.xaml.</p>
<p><strong>Defining a simple shape</strong></p>
<p>To start off, we will define a very simple shape made up of a single path. The DiagramShape code for this looks like the following:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #0600FF; font-weight: bold;">static</span> <span style="color: #6666cc; font-weight: bold;">class</span> CustomShapes <span style="color: #008000;">&#123;</span>
  <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #0600FF; font-weight: bold;">static</span> <span style="color: #0600FF; font-weight: bold;">readonly</span> DiagramShape Link <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> DiagramShape<span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Link&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>As you can see it is very simple. The string passed into the DiagramShape constructor is the name of the shape and is used for serialization. By default this is also used as the display name, but you can also specify the display name by setting the DisplayName property. Display names are displayed in the tooltip of the node tool in the tool box. This custom shape also doesn&#8217;t specify the number of connection points. By default, there will be one connection point on the left, top, right and bottom sides of the shape.</p>
<p>Next we need to write the ShapeLayout to define the graphical parts of the shape. Here is an example:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ms:ShapeLayout</span> <span style="color: #000066;">x:Key</span>=<span style="color: #ff0000;">&quot;{x:Static local:CustomShapes.Link}&quot;</span></span>
<span style="color: #009900;">                <span style="color: #000066;">Geometry</span>=<span style="color: #ff0000;">&quot;M 0 0 L 0.8 0 L 0.8 0.3 L 1 0.3 L 1 0.7 L 0.8 0.7 L 0.8 1 L 0 1 L 0 0.7 L 0.2 0.7 L 0.2 0.3 L 0 0.3 Z&quot;</span></span>
<span style="color: #009900;">                <span style="color: #000066;">ConnectionPointPositions</span>=<span style="color: #ff0000;">&quot;L 0.2,0.5&quot;</span></span>
<span style="color: #009900;">                <span style="color: #000066;">ContentMargin</span>=<span style="color: #ff0000;">&quot;2*,*,*,*&quot;</span></span>
<span style="color: #009900;">                <span style="color: #000000; font-weight: bold;">/&gt;</span></span></pre></div></div>

<p>The first thing to notice is that the DiagramShape object we created is being used as the resource key for the ShapeLayout. This is how WPF Diagrams matches up shape layouts to shape declarations.</p>
<p>The geometry for the shape itself is defined by the Geometry property, in this case using the PathGeometry mini-language. Note that all the values used in the path geometry are between 0 and 1. This makes it easier to scale the shape to any size. I have also customized the connection point positions and content margin which are topics outside the scope of this blog post (see <a href="http://www.mindscapehq.com/Help/wpf-diagrams/Help%20Topics/DefiningCustomShapes.html">the docs</a> for more info).</p>
<p>The only thing left to do now is include this custom shape in the tool box. The diagramming foundation then automatically creates the tool box icon, cursor visual, diagram node template and applies the default styles to match all the built in shapes. Adding the custom shape to the tool box is done by adding the following line of code to a DiagramToolBoxGroup:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ms:DiagramNodeTool</span> <span style="color: #000066;">ms:ShapeTool.Shape</span>=<span style="color: #ff0000;">&quot;{x:Static local:CustomShapes.Link}&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span></pre></div></div>

<p>The value of the ShapeTool.Shape attached property again just needs to be the DiagramShape object itself &#8212; the diagramming foundation will take it from there.</p>
<p><strong>Defining a shape with multiple paths</strong></p>
<p>Sometimes a single path geometry just isn&#8217;t going to do it. You may want to define shapes that are made up of multiple paths, each which may have different colors or styles. Fortunately the ShapeLayout class can support this too. Rather than setting the Geometry property, you can populate the Paths collection. The nuclear symbol seen in the image above has been achieved with this approach. The DiagramShape definition for this is the same as the previous shape but has a different name. The ShapeLayout is displayed below:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ms:ShapeLayout</span> <span style="color: #000066;">x:Key</span>=<span style="color: #ff0000;">&quot;{x:Static local:CustomShapes.Nuke}&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ms:ShapeLayout.Paths<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Path</span> <span style="color: #000066;">Fill</span>=<span style="color: #ff0000;">&quot;Black&quot;</span> <span style="color: #000066;">Data</span>=<span style="color: #ff0000;">&quot;M 0.5 0 A 0.5 0.5 180 0 1 0.5 1 A 0.5 0.5 180 0 1 0.5 0 Z&quot;</span></span>
<span style="color: #009900;">          <span style="color: #000066;">Stretch</span>=<span style="color: #ff0000;">&quot;Fill&quot;</span></span>
<span style="color: #009900;">          <span style="color: #000066;">ms:DiagramNodeElement.IsGeometryProvider</span>=<span style="color: #ff0000;">&quot;True&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Path</span> <span style="color: #000066;">Fill</span>=<span style="color: #ff0000;">&quot;#FFD60F&quot;</span> <span style="color: #000066;">Data</span>=<span style="color: #ff0000;">&quot;M 0 0 L 0.5 0.071 A 0.429 0.429 180 0 1 0.5 0.929 A 0.429 0.429 180 0 1 0.5 0.071 L 1 1 L 0.5 0.071 Z&quot;</span></span>
<span style="color: #009900;">          <span style="color: #000066;">Stretch</span>=<span style="color: #ff0000;">&quot;Fill&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Path</span> <span style="color: #000066;">Fill</span>=<span style="color: #ff0000;">&quot;Black&quot;</span> <span style="color: #000066;">Data</span>=<span style="color: #ff0000;">&quot;M 0 0 L 0.129 0.507 A 0.327 0.327 60 0 1 0.311 0.191 L 0.436 0.409 A 0.118 0.118 60 0 0 0.382 0.507 L 0.129 0.507 L 1 1 L 0.129 0.507 Z&quot;</span></span>
<span style="color: #009900;">          <span style="color: #000066;">Stretch</span>=<span style="color: #ff0000;">&quot;Fill&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Path</span> <span style="color: #000066;">Fill</span>=<span style="color: #ff0000;">&quot;Black&quot;</span> <span style="color: #000066;">Data</span>=<span style="color: #ff0000;">&quot;M 0 0 L 0.684 0.191 A 0.327 0.327 60 0 1 0.867 0.507 L 0.617 0.507 A 0.118 0.118 60 0 0 0.56 0.409 L 0.684 0.191 L 1 1 L 0.684 0.191 Z&quot;</span></span>
<span style="color: #009900;">          <span style="color: #000066;">Stretch</span>=<span style="color: #ff0000;">&quot;Fill&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Path</span> <span style="color: #000066;">Fill</span>=<span style="color: #ff0000;">&quot;Black&quot;</span> <span style="color: #000066;">Data</span>=<span style="color: #ff0000;">&quot;M 0 0 L 0.68 0.822 A 0.327 0.327 60 0 1 0.32 0.822 L 0.444 0.609 A 0.118 0.118 60 0 0 0.555 0.609 L 0.68 0.822 L 1 1 L 0.68 0.822 Z&quot;</span></span>
<span style="color: #009900;">          <span style="color: #000066;">Stretch</span>=<span style="color: #ff0000;">&quot;Fill&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Path</span> <span style="color: #000066;">Fill</span>=<span style="color: #ff0000;">&quot;Black&quot;</span> <span style="color: #000066;">Data</span>=<span style="color: #ff0000;">&quot;M 0 0 L 0.5 0.444 A 0.056 0.056 180 0 1 0.5 0.556 A 0.056 0.056 180 0 1 0.5 0.444 L 1 1 L 0.5 0.444 Z&quot;</span></span>
<span style="color: #009900;">          <span style="color: #000066;">Stretch</span>=<span style="color: #ff0000;">&quot;Fill&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ms:ShapeLayout.Paths<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ms:ShapeLayout<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>One thing to note here is the attached property being set on the first path. This attached property defines which path should be used as the hit testing area for the shape. The first path in the nuclear symbol is simply the outer circle. If you do not set this attached property, then the bounding box of the shape will be used as the hit testing area by default.</p>
<p><strong>Flexible styling</strong></p>
<p>In a few scenarios, you may find you want to have different path styles applied to the tool box icon, cursor visual and node template for the same shape. The lightning bolt shape seen in the image above has a blue tool box icon, a semi-transparent cursor visual, and a yellow node template. This can be achieved by using attached properties on a Path object as seen here:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ms:ShapeLayout</span> <span style="color: #000066;">x:Key</span>=<span style="color: #ff0000;">&quot;{x:Static local:CustomShapes.LightningBolt}&quot;</span></span>
<span style="color: #009900;">                <span style="color: #000066;">ConnectionPointPositions</span>=<span style="color: #ff0000;">&quot;L 0.255,0.453; 0.481,0.689 T 0,0.198; 0.396,0 R 0.604,0.292; 0.764,0.557 B 1,1&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ms:ShapeLayout.Paths<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Path</span> <span style="color: #000066;">Data</span>=<span style="color: #ff0000;">&quot;M 0 0.198 L 0.396 0 L 0.604 0.292 L 0.519 0.321 L 0.764 0.557 L 0.689 0.594 L 1 1 L 0.481 0.689 L 0.557 0.642 L 0.255 0.453 L 0.358 0.396 Z&quot;</span></span>
<span style="color: #009900;">          <span style="color: #000066;">Stretch</span>=<span style="color: #ff0000;">&quot;Fill&quot;</span> <span style="color: #000066;">StrokeLineJoin</span>=<span style="color: #ff0000;">&quot;Round&quot;</span></span>
<span style="color: #009900;">          <span style="color: #000066;">ms:ShapeLayout.ToolboxIconStyle</span>=<span style="color: #ff0000;">&quot;{StaticResource LightningToolBoxStyle}&quot;</span></span>
<span style="color: #009900;">          <span style="color: #000066;">ms:ShapeLayout.CursorVisualStyle</span>=<span style="color: #ff0000;">&quot;{StaticResource LightningCursorVisualStyle}&quot;</span></span>
<span style="color: #009900;">          <span style="color: #000066;">ms:ShapeLayout.NodeStyle</span>=<span style="color: #ff0000;">&quot;{StaticResource LightningNodeStyle}&quot;</span></span>
<span style="color: #009900;">          <span style="color: #000066;">ms:DiagramNodeElement.IsGeometryProvider</span>=<span style="color: #ff0000;">&quot;True&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ms:ShapeLayout.Paths<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ms:ShapeLayout<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Each attached property is setting a path style to be used in either the tool box, cursor visual or node template.</p>
<p>A full sample demonstrating all of these concepts can be <a href='http://www.mindscapehq.com/blog/index.php/2011/08/30/wpf-diagrams-custom-diagram-shapes/customdiagramshapes/' rel='attachment wp-att-3687'>downloaded here</a>. To run the sample, make sure to include a reference to your copy of the WPF Diagrams Foundation DLL.</p>
<p>The WPF Diagrams documentation includes more info about creating custom shapes, including how to serialise and deserialise diagrams that use custom shapes.  See Help Topics > Creating Your Own Shapes in the <a href="http://www.mindscapehq.com/Help/wpf-diagrams/Index.aspx">online docs</a> or the help file.</p>
<p>If you have any further questions about implementing custom diagram shapes then we would love to hear from you. Either leave a comment on this blog post, or <a href="http://www.mindscapehq.com/forums/Forum.aspx?ForumID=19">stop by our forum</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mindscapehq.com/blog/index.php/2011/08/30/wpf-diagrams-custom-diagram-shapes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: basic (Requested URI is rejected)
Database Caching 3/20 queries in 0.034 seconds using disk: basic
Content Delivery Network via cdn.mindscapehq.com

Served from: www.mindscapehq.com @ 2012-02-03 22:26:33 -->
