<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Delay's Blog : WPF Toolkit</title><link>http://blogs.msdn.com/delay/archive/tags/WPF+Toolkit/default.aspx</link><description>Tags: WPF Toolkit</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Two birds, squared! [Silverlight/WPF Data Visualization Development Release 3 and a DataVisualizationDemos update]</title><link>http://blogs.msdn.com/delay/archive/2009/11/30/two-birds-squared-silverlight-wpf-data-visualization-development-release-3-and-a-datavisualizationdemos-update.aspx</link><pubDate>Mon, 30 Nov 2009 20:21:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9930348</guid><dc:creator>Delay</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/delay/comments/9930348.aspx</comments><wfw:commentRss>http://blogs.msdn.com/delay/commentrss.aspx?PostID=9930348</wfw:commentRss><description>&lt;DIV class=delay&gt;
&lt;P&gt;We shipped the &lt;A href="http://silverlight.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=36060" mce_href="http://silverlight.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=36060"&gt;November 2009 release&lt;/A&gt; of the &lt;A href="http://silverlight.codeplex.com/" mce_href="http://silverlight.codeplex.com/"&gt;Silverlight Toolkit&lt;/A&gt; a little over a week ago and it includes a &lt;A href="http://blogs.msdn.com/delay/archive/2009/11/18/silverlight-4-beta-is-out-and-the-toolkit-has-it-covered-silverlight-toolkit-november-2009-release-now-available-for-silverlight-3-and-4.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/11/18/silverlight-4-beta-is-out-and-the-toolkit-has-it-covered-silverlight-toolkit-november-2009-release-now-available-for-silverlight-3-and-4.aspx"&gt;handful of improvements to the Data Visualization assembly&lt;/A&gt;. It also adds support for the new &lt;A href="http://www.silverlight.net/getstarted/silverlight-4-beta/" mce_href="http://www.silverlight.net/getstarted/silverlight-4-beta/"&gt;Silverlight 4 Beta&lt;/A&gt;! And while &lt;STRONG&gt;we&lt;/STRONG&gt; were busy getting the October/November Toolkits out the door, the &lt;STRONG&gt;WPF&lt;/STRONG&gt; team previewed WPF 4 along with the &lt;A href="http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx" mce_href="http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx"&gt;.NET 4 and Visual Studio 2010 Beta&lt;/A&gt;! &lt;/P&gt;
&lt;P&gt;Which means there are now &lt;STRONG&gt;four&lt;/STRONG&gt; platforms of interest to developers: &lt;U&gt;Silverlight 3&lt;/U&gt;, &lt;U&gt;Silverlight 4&lt;/U&gt;, &lt;U&gt;WPF 3.5&lt;/U&gt;, and &lt;U&gt;WPF 4&lt;/U&gt;. And the Silverlight/WPF Data Visualization assembly supports them &lt;STRONG&gt;all&lt;/STRONG&gt;! &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Silverlight/WPF Data Visualization Development Release 3 &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;As with previous &lt;A href="http://blogs.msdn.com/delay/archive/2009/07/16/bringing-the-silverlight-toolkit-s-treemap-to-wpf-silverlight-wpf-data-visualization-development-release-0.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/07/16/bringing-the-silverlight-toolkit-s-treemap-to-wpf-silverlight-wpf-data-visualization-development-release-0.aspx"&gt;Data Visualization Development Releases&lt;/A&gt;, I've updated to the most recent Toolkit code. And like &lt;A href="http://blogs.msdn.com/delay/archive/2009/10/21/two-birds-one-stone-silverlight-wpf-data-visualization-development-release-2-and-datavisualizationdemos-update.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/10/21/two-birds-one-stone-silverlight-wpf-data-visualization-development-release-2-and-datavisualizationdemos-update.aspx"&gt;last time&lt;/A&gt;, the Silverlight Toolkit shipped most recently so the code in the new Development Release is identical to what just went out with the Silverlight 3/4 Toolkits. However, people using Data Visualization on WPF 3.5 or 4 can take advantage of the latest changes by updating to the binaries included with this Development Release or by compiling the corresponding code themselves. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A href="http://cesso.org/Samples/SilverlightWpfDataVisualization/SilverlightWpfDataVisualization.zip" mce_href="http://cesso.org/Samples/SilverlightWpfDataVisualization/SilverlightWpfDataVisualization.zip"&gt;[Click here to download the SilverlightWpfDataVisualization solution including complete source code and pre-compiled binaries for all four platforms.]&lt;/A&gt; &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Notes: &lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;This is the first release I know of that supports four different platforms with distinct implementations on each. While the code and XAML are 99+% identical across the platforms, each has at least one customization that makes it unique. [Bonus points for identifying them all! &lt;NOBR&gt;:)&lt;/NOBR&gt; ] &lt;/LI&gt;
&lt;LI&gt;Previously, there was a single Visual Studio 2008 &lt;CODE&gt;SilverlightWpfDataVisualization.sln&lt;/CODE&gt; file for both Silverlight 3 and WPF 3.5. Because Silverlight 4 and WPF 4 use Visual Studio 2010, there's a new &lt;CODE&gt;SilverlightWpfDataVisualization&lt;STRONG&gt;4&lt;/STRONG&gt;.sln&lt;/CODE&gt; file for those two platforms. The two solutions (and the projects within) look and act exactly the same - they're separate because they compile with different tools and because separation lets people who haven't upgraded continue to use the VS 2008 solution. &lt;/LI&gt;
&lt;LI&gt;I always strive for code that builds with no compile or code analysis warnings, and that's still the case when compiling for Silverlight 3, WPF 3.5, and Silverlight 4 (though the last is a bit of a cheat because code analysis doesn't work there yet). But the new .NET 4 tools include some improvements, and there were three new kinds of warnings when I first compiled for WPF 4. Two of them were easily addressed with trivial changes I already made, but the third requires a bit more (potentially destabilizing) work that was &lt;STRONG&gt;not&lt;/STRONG&gt; done for this release: &lt;EM&gt;Warning 2 CA1062 : Microsoft.Design : In externally visible method 'Foo', validate parameter 'Bar' before using it.&lt;/EM&gt; As it happens, there was already a work item for this task because we knew we weren't checking everywhere we should. So if you see this warning when compiling the WPF 4 assembly, please don't be alarmed! &lt;/LI&gt;
&lt;LI&gt;Whereas it used to be fine to wrap platform-specific code in &lt;CODE&gt;#if SILVERLIGHT&lt;/CODE&gt; blocks, that doesn't work anymore because there are now cross-version changes &lt;STRONG&gt;within&lt;/STRONG&gt; each platform. Therefore, I've switched to the form &lt;CODE&gt;#if !NO_FEATURE&lt;/CODE&gt; instead. It's usually best to avoid double-negatives, but their use here is a consequence of a deliberate decision. My goal is that, by default, the code tries to use every feature it supports and if the target platform doesn't implement something, there's a compile error. At which point it's easy to identify the problem and add the relevant &lt;CODE&gt;#define&lt;/CODE&gt; to the project file to "turn off" the unsupported feature. This seem better to me than forcing developers to know all the relevant flags and use them to "turn on" features for each platform. Just another example of the &lt;A href="http://blogs.msdn.com/brada/archive/2003/10/02/50420.aspx" mce_href="http://blogs.msdn.com/brada/archive/2003/10/02/50420.aspx"&gt;pit of success&lt;/A&gt;, really... &lt;NOBR&gt;:)&lt;/NOBR&gt; &lt;/LI&gt;
&lt;LI&gt;WPF 4 includes the &lt;A href="http://msdn.microsoft.com/en-us/library/system.windows.visualstatemanager(VS.100).aspx" mce_href="http://msdn.microsoft.com/en-us/library/system.windows.visualstatemanager(VS.100).aspx"&gt;Visual State Manager&lt;/A&gt; classes in the framework, so the WPF 4 Data Visualization assembly no longer has a dependency on the WPF Toolkit! &lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;IMG alt="DataVisualizationDemos on WPF 4" src="http://blogs.msdn.com/blogfiles/delay/DataVisualizationDemos-WPF4.png" width=405 height=381 mce_src="http://blogs.msdn.com/blogfiles/delay/DataVisualizationDemos-WPF4.png"&gt; 
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;DataVisualizationDemos Sample Project Updated &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The DataVisualizationDemos application is a collection of all the Data Visualization samples I've posted to my blog. Like the Data Visualization assembly itself, the demo application runs on Silverlight 3 and 4 as well as WPF 3.5 and 4 and shares the same code and XAML across all &lt;STRONG&gt;four&lt;/STRONG&gt; platforms. Not only is it a convenient way to look at a variety of sample code, it also has links back to the relevant blog posts for more detail about each sample. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A href="http://cesso.org/Samples/DataVisualizationDemos/DataVisualizationDemos.zip" mce_href="http://cesso.org/Samples/DataVisualizationDemos/DataVisualizationDemos.zip"&gt;Click here to download the complete source code for the cross-platform DataVisualizationDemos sample application.&lt;/A&gt; &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Notes: &lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;I've followed the same dual-solution and &lt;CODE&gt;#if&lt;/CODE&gt; approaches that I describe above. &lt;/LI&gt;
&lt;LI&gt;Because WPF 4 now supports &lt;A href="http://msdn.microsoft.com/en-us/library/cc189019(VS.96).aspx#easing_functions" mce_href="http://msdn.microsoft.com/en-us/library/cc189019(VS.96).aspx#easing_functions"&gt;easing functions&lt;/A&gt;, the "Gelatin Sales" example on the "Charting Introduction" tab runs on that platform - as does the entire "Jelly Charting" demo. And boy, is it smooth on WPF! &lt;NOBR&gt;:)&lt;/NOBR&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;With the release of Silverlight/WPF Data Visualization Development Release 3, it's easy for anyone to compile and run the Data Visualization assembly on any of Microsoft's four premier development platforms. So what are you waiting for? &lt;NOBR&gt;;)&lt;/NOBR&gt; &lt;/P&gt;&lt;/DIV&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9930348" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/delay/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/delay/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/delay/archive/tags/Silverlight+Toolkit/default.aspx">Silverlight Toolkit</category><category domain="http://blogs.msdn.com/delay/archive/tags/WPF+Toolkit/default.aspx">WPF Toolkit</category></item><item><title>My new home page, revised [Updated collection of great Silverlight/WPF Data Visualization resources!]</title><link>http://blogs.msdn.com/delay/archive/2009/10/28/my-new-home-page-revised-updated-collection-of-great-silverlight-wpf-data-visualization-resources.aspx</link><pubDate>Wed, 28 Oct 2009 17:15:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9914196</guid><dc:creator>Delay</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/delay/comments/9914196.aspx</comments><wfw:commentRss>http://blogs.msdn.com/delay/commentrss.aspx?PostID=9914196</wfw:commentRss><description>&lt;DIV class=delay&gt;
&lt;P&gt;In the time since sharing &lt;A href="http://blogs.msdn.com/delay/archive/2009/07/19/my-new-home-page-enhanced-updated-collection-of-great-silverlight-wpf-data-visualization-resources.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/07/19/my-new-home-page-enhanced-updated-collection-of-great-silverlight-wpf-data-visualization-resources.aspx"&gt;my last collection of Silverlight/WPF Charting links&lt;/A&gt;, there have been some great new articles I'd like to highlight. And in case you haven't heard, we published the &lt;A href="http://silverlight.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=30514" mce_href="http://silverlight.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=30514"&gt;October 09&lt;/A&gt; release of the &lt;A href="http://silverlight.codeplex.com/" mce_href="http://silverlight.codeplex.com/"&gt;Silverlight Toolkit&lt;/A&gt; last week, so please consider upgrading if you haven't already! &lt;/P&gt;
&lt;P&gt;Here are the latest links (FYI: previously published links are gray): &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Overviews (&lt;A href="http://support.microsoft.com/default.aspx?scid=gp;en-us;WebCastLevels&amp;amp;sd=gn" mce_href="http://support.microsoft.com/default.aspx?scid=gp;en-us;WebCastLevels&amp;amp;sd=gn"&gt;100 level&lt;/A&gt;) &lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://timheuer.com/blog/archive/2008/10/28/silverlight-toolkit-released-with-charting-databinding.aspx" mce_href="http://timheuer.com/blog/archive/2008/10/28/silverlight-toolkit-released-with-charting-databinding.aspx"&gt;Silverlight Toolkit Released – More controls!&lt;/A&gt; - &lt;STRONG&gt;Tim Heuer&lt;/STRONG&gt;'s &lt;EM&gt;during the PDC keynote&lt;/EM&gt; overview set the stage for good Charting content. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://community.irritatedvowel.com/blogs/pete_browns_blog/archive/2008/10/28/Silverlight-Toolkit-_2800_Silverlight-2-Control-Pack_2900_-_2D00_-Charting.aspx" mce_href="http://community.irritatedvowel.com/blogs/pete_browns_blog/archive/2008/10/28/Silverlight-Toolkit-_2800_Silverlight-2-Control-Pack_2900_-_2D00_-Charting.aspx"&gt;Silverlight Toolkit (Silverlight 2 Control Pack) - Charting &lt;/A&gt;- &lt;STRONG&gt;Pete Brown&lt;/STRONG&gt; followed up minutes later with another good overview. (Party trivia: The styles seen in his blog offer a rare glimpse of the pre-release Charting styles.) &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blog.ecofic.com/?p=133" mce_href="http://blog.ecofic.com/?p=133"&gt;Silverlight - Introducing the Chart Control&lt;/A&gt; - &lt;STRONG&gt;Chad Campbell&lt;/STRONG&gt; was also ready with a good "zero-day" overview and code samples. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://www.hanselman.com/blog/TheWeeklySourceCode36PDCBabySmashAndSilverlightCharting.aspx" mce_href="http://www.hanselman.com/blog/TheWeeklySourceCode36PDCBabySmashAndSilverlightCharting.aspx"&gt;The Weekly Source Code 36 - PDC, BabySmash and Silverlight Charting&lt;/A&gt; - &lt;STRONG&gt;Scott Hanselman&lt;/STRONG&gt;'s post includes a &lt;A href="http://www.babysmash.com/" mce_href="http://www.babysmash.com/"&gt;BabySmash&lt;/A&gt; tie-in and a smidge of flattery. :) &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://silverlight.net/blogs/jesseliberty/archive/2008/11/24/graphing-silverlight-toolkit.aspx" mce_href="http://silverlight.net/blogs/jesseliberty/archive/2008/11/24/graphing-silverlight-toolkit.aspx"&gt;Graphing – Silverlight Toolkit&lt;/A&gt; - &lt;STRONG&gt;Jesse Liberty&lt;/STRONG&gt; introduces Charting and covers some of the basics. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://silverlight.net/blogs/jesseliberty/archive/2008/12/17/bubble-chart.aspx" mce_href="http://silverlight.net/blogs/jesseliberty/archive/2008/12/17/bubble-chart.aspx"&gt;Bubble chart&lt;/A&gt; - &lt;STRONG&gt;Jesse Liberty&lt;/STRONG&gt; introduces the BubbleSeries class and describes some interesting use-cases. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://www.sparklingclient.com/the-bubble-chart-in-the-silverlight-toolkit/" mce_href="http://www.sparklingclient.com/the-bubble-chart-in-the-silverlight-toolkit/"&gt;The Bubble Chart in the Silverlight Toolkit&lt;/A&gt; - &lt;STRONG&gt;Sparkling Client&lt;/STRONG&gt; interviews &lt;STRONG&gt;Jesse Liberty&lt;/STRONG&gt; in this podcast discussing the BubbleSeries. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://jeffblankenburg.com/2009/07/day-15-silverlight-charting.aspx" mce_href="http://jeffblankenburg.com/2009/07/day-15-silverlight-charting.aspx"&gt;Day #15: Silverlight Charting&lt;/A&gt; - &lt;STRONG&gt;Jeff Blankenburg&lt;/STRONG&gt; gives a nice overview of Charting and demonstrates how easy it is to switch series types along the way. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Scenarios (200 level) &lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://www.sitechno.com/Blog/ZoomingIntoAChart.aspx" mce_href="http://www.sitechno.com/Blog/ZoomingIntoAChart.aspx"&gt;Zooming into a chart&lt;/A&gt; - &lt;STRONG&gt;Ruurd Boeke&lt;/STRONG&gt; did the "zooming" scenario sample for the &lt;A href="http://silverlight.net/samples/sl2/toolkitcontrolsamples/run/default.html" mce_href="http://silverlight.net/samples/sl2/toolkitcontrolsamples/run/default.html"&gt;live Charting samples page&lt;/A&gt; - here's how he did it. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blog.ecofic.com/?p=155" mce_href="http://blog.ecofic.com/?p=155"&gt;Silverlight - Getting Started with the Chart Control&lt;/A&gt; - &lt;STRONG&gt;Chad Campbell &lt;/STRONG&gt;again - a thorough walkthrough of creating your first chart. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://www.eggheadcafe.com/tutorials/aspnet/5b0c5717-2817-47a5-bd20-1bbdc0ab1240/silverlight-2-custom-stoc.aspx" mce_href="http://www.eggheadcafe.com/tutorials/aspnet/5b0c5717-2817-47a5-bd20-1bbdc0ab1240/silverlight-2-custom-stoc.aspx"&gt;Silverlight 2 Custom Stock Charts With Silverlight Toolkit&lt;/A&gt; - &lt;STRONG&gt;Peter Bromberg&lt;/STRONG&gt; with his own walkthrough - creating a stock chart with plenty of code. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://community.irritatedvowel.com/blogs/pete_browns_blog/archive/2008/10/31/Styling-the-Charts-in-the-Silverlight-Toolkit.aspx" mce_href="http://community.irritatedvowel.com/blogs/pete_browns_blog/archive/2008/10/31/Styling-the-Charts-in-the-Silverlight-Toolkit.aspx"&gt;Styling the Charts in the Silverlight Toolkit&lt;/A&gt; - &lt;STRONG&gt;Pete Brown&lt;/STRONG&gt; again - this time with a good styling overview for designers. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blogs.msdn.com/mehdis/archive/2008/11/11/designer-s-guide-to-styling-silverlight-toolkit-charting-controls.aspx" mce_href="http://blogs.msdn.com/mehdis/archive/2008/11/11/designer-s-guide-to-styling-silverlight-toolkit-charting-controls.aspx"&gt;Designer’s Guide to Styling Silverlight Toolkit Charting Controls&lt;/A&gt; - &lt;STRONG&gt;Mehdi Slaoui Andaloussi&lt;/STRONG&gt; goes over the top with a &lt;A href="http://en.wikipedia.org/wiki/Soup_to_nuts" mce_href="http://en.wikipedia.org/wiki/Soup_to_nuts"&gt;"soup to nuts"&lt;/A&gt; designer-oriented guide to styling &lt;EM&gt;everything&lt;/EM&gt;. It probably helps that Mehdi works on my team and authored the shipping styles for Charting as well. :) &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://community.irritatedvowel.com/blogs/pete_browns_blog/archive/2008/12/04/Pie-Chart-Styling-in-the-Silverlight-Toolkit-_2D00_-Cross_2D00_Slice-Gradients.aspx" mce_href="http://community.irritatedvowel.com/blogs/pete_browns_blog/archive/2008/12/04/Pie-Chart-Styling-in-the-Silverlight-Toolkit-_2D00_-Cross_2D00_Slice-Gradients.aspx"&gt;Pie Chart Styling in the Silverlight Toolkit - Cross-Slice Gradients&lt;/A&gt; - &lt;STRONG&gt;Pete Brown&lt;/STRONG&gt; takes a proof-of-concept for holistic pie chart styling and uses it to &lt;EM&gt;great&lt;/EM&gt; effect. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://silverlight.net/blogs/jesseliberty/archive/2008/12/18/bubbles-1-chart-three-axes.aspx" mce_href="http://silverlight.net/blogs/jesseliberty/archive/2008/12/18/bubbles-1-chart-three-axes.aspx"&gt;Bubbles – 1 Chart – three Axes&lt;/A&gt; - &lt;STRONG&gt;Jesse Liberty&lt;/STRONG&gt; takes advantage of BubbleSeries to visualize historical data in an interesting way. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://kevindockx.blogspot.com/2008/12/customizing-labels-on-axis-of.html" mce_href="http://kevindockx.blogspot.com/2008/12/customizing-labels-on-axis-of.html"&gt;Customizing the Labels on an Axis of the Silverlight Toolkit Chart&lt;/A&gt; - &lt;STRONG&gt;Kevin Dockx&lt;/STRONG&gt; calls out the AxisLabelStyle property which allows designers to easily customize the labels of an axis. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://community.irritatedvowel.com/blogs/pete_browns_blog/archive/2009/01/09/Dazzling-Silverlight-Toolkit-Pie-Charts-with-Overlays.aspx" mce_href="http://community.irritatedvowel.com/blogs/pete_browns_blog/archive/2009/01/09/Dazzling-Silverlight-Toolkit-Pie-Charts-with-Overlays.aspx"&gt;Dazzling Silverlight Toolkit Pie Charts with Overlays&lt;/A&gt; - &lt;STRONG&gt;Pete Brown&lt;/STRONG&gt; continues working with pie charts and creates a further level of polish by adding some shiny overlays that make the visuals "pop". &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://www.jeff.wilcox.name/2008/12/10/charting-rich-tooltips/" mce_href="http://www.jeff.wilcox.name/2008/12/10/charting-rich-tooltips/"&gt;Silverlight Charting: Creating rich data point tooltips&lt;/A&gt; - &lt;STRONG&gt;Jeff Wilcox&lt;/STRONG&gt; shows how he customized the ToolTips of a LineSeries to show a wealth of information relevant information in a very user-friendly manner. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://silverlight.net/blogs/jesseliberty/archive/2009/01/10/pie-chart-and-column-chart-videos-post.aspx" mce_href="http://silverlight.net/blogs/jesseliberty/archive/2009/01/10/pie-chart-and-column-chart-videos-post.aspx"&gt;Pie Chart and Column Chart videos post&lt;/A&gt; - &lt;STRONG&gt;Jesse Liberty&lt;/STRONG&gt; demonstrates the use of PieSeries and ColumnSeries in a set of "How Do I" videos. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://expression.microsoft.com/en-us/dd433476.aspx" mce_href="http://expression.microsoft.com/en-us/dd433476.aspx"&gt;Styling Charts with the Silverlight Toolkit&lt;/A&gt; - &lt;STRONG&gt;Pete Brown&lt;/STRONG&gt;'s comprehensive &lt;A href="http://expression.microsoft.com/en-us/default.aspx" mce_href="http://expression.microsoft.com/en-us/default.aspx"&gt;Expression Newsletter&lt;/A&gt; article provides some of the best information available anywhere about Charting styling! &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://www.codeproject.com/KB/WPF/WPFSLChart.aspx" mce_href="http://www.codeproject.com/KB/WPF/WPFSLChart.aspx"&gt;Styling a Silverlight Chart&lt;/A&gt; - &lt;STRONG&gt;Rudi Grobler&lt;/STRONG&gt; shows how to re-style a LineSeries to look just like the &lt;A href="http://www.google.com/analytics/" mce_href="http://www.google.com/analytics/"&gt;Google Analytics&lt;/A&gt; charts. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://leeontech.wordpress.com/2009/02/25/linechart-with-markers/" mce_href="http://leeontech.wordpress.com/2009/02/25/linechart-with-markers/"&gt;LineChart with Markers&lt;/A&gt; - &lt;STRONG&gt;Lee&lt;/STRONG&gt; demonstrates one way of adding markers (also known as annotations or cursors) to a Chart. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://leeontech.wordpress.com/2009/03/13/showing-and-hiding-series-in-chart/" mce_href="http://leeontech.wordpress.com/2009/03/13/showing-and-hiding-series-in-chart/"&gt;Showing and Hiding Series in chart&lt;/A&gt; - &lt;STRONG&gt;Lee&lt;/STRONG&gt; neatly solves the problem of hiding (and showing) individual Series by clicking on their entries in the Legend. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://geekswithblogs.net/tkokke/archive/2009/04/01/creating-binding-and-styling-a-bubble-chart.aspx" mce_href="http://geekswithblogs.net/tkokke/archive/2009/04/01/creating-binding-and-styling-a-bubble-chart.aspx"&gt;Creating, Binding and Styling a Bubble Chart&lt;/A&gt; - &lt;STRONG&gt;Timmy Kokke&lt;/STRONG&gt; shows off how some of the new Blend 3 features can be used to completely customize the appearance of a BubbleSeries without writing any code at all. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://community.irritatedvowel.com/blogs/pete_browns_blog/archive/2009/04/09/Custom-Bar-Charts-with-the-Silverlight-Toolkit.aspx" mce_href="http://community.irritatedvowel.com/blogs/pete_browns_blog/archive/2009/04/09/Custom-Bar-Charts-with-the-Silverlight-Toolkit.aspx"&gt;Custom Bar Charts with the Silverlight Toolkit&lt;/A&gt; - &lt;STRONG&gt;Pete Brown&lt;/STRONG&gt; discusses how he went about dramatically customizing the appearance of two Chart types to create a very modern, polished look for a demo app. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://www.eggheadcafe.com/tutorials/aspnet/2d803e3c-081f-437c-8ee6-8584c1f63683/silverlight-3-displaying.aspx" mce_href="http://www.eggheadcafe.com/tutorials/aspnet/2d803e3c-081f-437c-8ee6-8584c1f63683/silverlight-3-displaying.aspx"&gt;Silverlight 3: Displaying and Charting with TwitterCounter&lt;/A&gt; - &lt;STRONG&gt;Peter Bromberg&lt;/STRONG&gt; shows off an application to display Twitter statistics along with a chart of followers over time. &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blog.ecofic.com/?p=130" mce_href="http://blog.ecofic.com/?p=130"&gt;Silverlight - Drill Down Charts Walkthrough&lt;/A&gt; - &lt;STRONG&gt;Chad Campbell&lt;/STRONG&gt; gives a great overview of creating "drill-down" charts - in video form! &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Internals (300 level) &lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://www.scottlogic.co.uk/blog/wpf/2009/02/adding-a-location-crosshair-to-silverlight-charts/" mce_href="http://www.scottlogic.co.uk/blog/wpf/2009/02/adding-a-location-crosshair-to-silverlight-charts/"&gt;Adding a Location Crosshair to Silverlight Charts&lt;/A&gt; - &lt;STRONG&gt;Colin Eberhardt&lt;/STRONG&gt; shows how to add crosshairs on top of a Chart to display the coordinates of the mouse pointer. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://www.scottlogic.co.uk/blog/wpf/2009/03/adding-a-location-crosshair-to-silverlight-charts-again/" mce_href="http://www.scottlogic.co.uk/blog/wpf/2009/03/adding-a-location-crosshair-to-silverlight-charts-again/"&gt;Adding a Location Crosshair to Silverlight charts (again!)&lt;/A&gt; - &lt;STRONG&gt;Colin Eberhardt&lt;/STRONG&gt; updates his crosshairs post to accommodate changes in the March 09 release. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://www.codeproject.com/KB/silverlight/SLTCandlestickChart2.aspx" mce_href="http://www.codeproject.com/KB/silverlight/SLTCandlestickChart2.aspx"&gt;How to create stock charts using the Silverlight Toolkit&lt;/A&gt; - &lt;STRONG&gt;Rudi Grobler&lt;/STRONG&gt; shows how to create a custom Series type that's perfect for stock charts (open/high/low/close). &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://jmorrill.hjtcentral.com/Home/tabid/428/EntryId/351/Silverlight-Charts-Binding-multiple-Series.aspx" mce_href="http://jmorrill.hjtcentral.com/Home/tabid/428/EntryId/351/Silverlight-Charts-Binding-multiple-Series.aspx"&gt;Silverlight Charts: Binding multiple Series&lt;/A&gt; - &lt;STRONG&gt;Jeremiah Morrill&lt;/STRONG&gt; shows off an attached behavior that enables binding a Chart to a "collection of collections" to create an arbitrary number of series automatically. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://leeontech.wordpress.com/2009/03/02/interacting-with-charts/" mce_href="http://leeontech.wordpress.com/2009/03/02/interacting-with-charts/"&gt;Interacting with Charts&lt;/A&gt; - &lt;STRONG&gt;Lee&lt;/STRONG&gt; implements a nice interactive range selection behavior to create a friendly "zoom" feature for controlling the Axis range. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://leeontech.wordpress.com/2009/05/27/interacting-with-charts-2/" mce_href="http://leeontech.wordpress.com/2009/05/27/interacting-with-charts-2/"&gt;Interacting with charts-2&lt;/A&gt; - &lt;STRONG&gt;Lee&lt;/STRONG&gt; shows off a proof-of-concept implementation to add an overlay for the plot area with grippers that enable interactive zooming on an axis. &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://bea.stollnitz.com/blog/?p=353" mce_href="http://bea.stollnitz.com/blog/?p=353"&gt;How can I add labels to a WPF pie chart?&lt;/A&gt; - &lt;STRONG&gt;Bea Stollnitz&lt;/STRONG&gt; begins her three-part series about adding annotations to a pie chart with an overview. &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://bea.stollnitz.com/blog/?p=363" mce_href="http://bea.stollnitz.com/blog/?p=363"&gt;How can I add labels to a WPF pie chart? - Implementation details&lt;/A&gt; - &lt;STRONG&gt;Bea Stollnitz&lt;/STRONG&gt;'s second post explains how she implemented her pie chart annotations on WPF. &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://bea.stollnitz.com/blog/?p=366" mce_href="http://bea.stollnitz.com/blog/?p=366"&gt;How can I port the WPF labeled pie chart to Silverlight?&lt;/A&gt; - &lt;STRONG&gt;Bea Stollnitz&lt;/STRONG&gt;'s final post of the trilogy details how she ported the WPF implementation to Silverlight. &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://reyntjes.blogspot.com/2009/09/freeing-axes-of-microsoft-toolkit.html" mce_href="http://reyntjes.blogspot.com/2009/09/freeing-axes-of-microsoft-toolkit.html"&gt;Freeing the axes of the Microsoft toolkit charting control &lt;/A&gt;- &lt;STRONG&gt;Robert&lt;/STRONG&gt; provides an in-depth description of how he created a custom axis behavior and used it to produce a nice stacked chart display. &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.cplotts.com/2009/10/09/wpf-silverlight-charting-a-logarithmic-axis/" mce_href="http://www.cplotts.com/2009/10/09/wpf-silverlight-charting-a-logarithmic-axis/"&gt;WPF &amp;amp; Silverlight Charting: A Logarithmic Axis&lt;/A&gt; - &lt;STRONG&gt;Cory Plotts&lt;/STRONG&gt; took it upon himself to write - and share - a LogarithmicAxis implementation that should make some of you very happy! &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Team Member posts (Partner level) &lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://themechanicalbride.blogspot.com/2008/10/building-observable-model-in.html" mce_href="http://themechanicalbride.blogspot.com/2008/10/building-observable-model-in.html"&gt;Building an Observable Model in Silverlight&lt;/A&gt; - &lt;STRONG&gt;Jafar Husain&lt;/STRONG&gt; gives some deep, technical detail about the observable model that Charting uses to enable its rich dynamic data support. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://themechanicalbride.blogspot.com/2009/03/writing-your-own-silverlight-chart.html" mce_href="http://themechanicalbride.blogspot.com/2009/03/writing-your-own-silverlight-chart.html"&gt;Writing Your Own Silverlight Chart Series (Part 1): Making Designers Happy&lt;/A&gt; - &lt;STRONG&gt;Jafar Husain&lt;/STRONG&gt; provides an overview of what it takes to create a new Series type and some scaffolding for an &lt;A href="http://en.wikipedia.org/wiki/OHLC" mce_href="http://en.wikipedia.org/wiki/OHLC"&gt;OHLC&lt;/A&gt; Series. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://themechanicalbride.blogspot.com/2009/03/writing-your-own-silverlight-chart_25.html" mce_href="http://themechanicalbride.blogspot.com/2009/03/writing-your-own-silverlight-chart_25.html"&gt;Writing Your Own Silverlight Chart Series (Part 2): Implementing the Series&lt;/A&gt; - &lt;STRONG&gt;Jafar Husain&lt;/STRONG&gt; explains all that it takes to completely implement a custom chart type using only the public interfaces! &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blogs.msdn.com/marlat/archive/2009/07/10/treemap-control-comes-to-silverlight-toolkit.aspx" mce_href="http://blogs.msdn.com/marlat/archive/2009/07/10/treemap-control-comes-to-silverlight-toolkit.aspx"&gt;TreeMap control is coming to Silverlight Toolkit&lt;/A&gt; - &lt;STRONG&gt;Marek Latuskiewicz&lt;/STRONG&gt; introduces the new TreeMap control, explains what Interpolators are, and shows how they work. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blogs.msdn.com/gpde/pages/treemap-released-in-silverlight-toolkit.aspx" mce_href="http://blogs.msdn.com/gpde/pages/treemap-released-in-silverlight-toolkit.aspx"&gt;Treemap released in Silverlight Toolkit &lt;/A&gt;- &lt;STRONG&gt;Gareth Bradshaw&lt;/STRONG&gt; gives a great TreeMap overview that touches on all the common scenarios. &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/marlat/archive/2009/08/06/treemap-in-silverlight-toolkit-how-to-write-your-own-interpolator.aspx" mce_href="http://blogs.msdn.com/marlat/archive/2009/08/06/treemap-in-silverlight-toolkit-how-to-write-your-own-interpolator.aspx"&gt;TreeMap in Silverlight Toolkit: How to write your own interpolator&lt;/A&gt; - &lt;STRONG&gt;Marek Latuskiewicz&lt;/STRONG&gt; explains more about what Interpolators are, how they're actually used by the TreeMap control, and how to write one yourself! &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;My posts (Ego level) &lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2008/10/28/announcing-a-free-open-source-charting-solution-for-silverlight-silverlight-toolkit-released-today-at-pdc.aspx" mce_href="http://blogs.msdn.com/delay/archive/2008/10/28/announcing-a-free-open-source-charting-solution-for-silverlight-silverlight-toolkit-released-today-at-pdc.aspx"&gt;Announcing a free, open source Charting solution for Silverlight [Silverlight Toolkit released today at PDC!]&lt;/A&gt; &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2008/10/29/click-your-way-to-great-silverlight-charts-live-chartbuilder-sample-and-source-code.aspx" mce_href="http://blogs.msdn.com/delay/archive/2008/10/29/click-your-way-to-great-silverlight-charts-live-chartbuilder-sample-and-source-code.aspx"&gt;Click your way to great Silverlight charts [Live ChartBuilder sample and source code!]&lt;/A&gt; &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2008/11/06/improving-chartbuilder-s-cultural-sensitivity-chartbuilder-app-source-updated.aspx" mce_href="http://blogs.msdn.com/delay/archive/2008/11/06/improving-chartbuilder-s-cultural-sensitivity-chartbuilder-app-source-updated.aspx"&gt;Improving ChartBuilder's cultural sensitivity [ChartBuilder app/source updated!]&lt;/A&gt; &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2008/12/09/silverlight-charting-gets-a-host-of-improvements-silverlight-toolkit-december-08-release-now-available.aspx" mce_href="http://blogs.msdn.com/delay/archive/2008/12/09/silverlight-charting-gets-a-host-of-improvements-silverlight-toolkit-december-08-release-now-available.aspx"&gt;Silverlight Charting gets a host of improvements [Silverlight Toolkit December 08 release now available!]&lt;/A&gt; &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2008/12/10/great-silverlight-charts-are-still-just-a-click-away-chartbuilder-sample-and-source-code-updated-for-charting-s-december-08-release.aspx" mce_href="http://blogs.msdn.com/delay/archive/2008/12/10/great-silverlight-charts-are-still-just-a-click-away-chartbuilder-sample-and-source-code-updated-for-charting-s-december-08-release.aspx"&gt;Great Silverlight charts are still just a click away [ChartBuilder sample and source code updated for Charting's December 08 release]&lt;/A&gt; &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2008/12/30/yummier-pies-a-technique-for-more-flexible-gradient-styling-of-silverlight-toolkit-pie-charts.aspx" mce_href="http://blogs.msdn.com/delay/archive/2008/12/30/yummier-pies-a-technique-for-more-flexible-gradient-styling-of-silverlight-toolkit-pie-charts.aspx"&gt;Yummier pies! [A technique for more flexible gradient styling of Silverlight Toolkit pie charts]&lt;/A&gt; &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2009/02/04/columns-of-a-different-color-customizing-the-appearance-of-silverlight-charts-with-re-templating-and-mvvm.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/02/04/columns-of-a-different-color-customizing-the-appearance-of-silverlight-charts-with-re-templating-and-mvvm.aspx"&gt;Columns of a different color [Customizing the appearance of Silverlight charts with re-templating and MVVM]&lt;/A&gt; &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2009/03/19/silverlight-charting-is-faster-and-better-than-ever-silverlight-toolkit-march-09-release-now-available.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/03/19/silverlight-charting-is-faster-and-better-than-ever-silverlight-toolkit-march-09-release-now-available.aspx"&gt;Silverlight Charting is faster and better than ever [Silverlight Toolkit March 09 release now available!]&lt;/A&gt; &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2009/03/20/silverlight-charting-remains-just-a-click-away-and-runs-on-wpf-too-chartbuilder-sample-and-source-code-updated-for-charting-s-march-09-release.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/03/20/silverlight-charting-remains-just-a-click-away-and-runs-on-wpf-too-chartbuilder-sample-and-source-code-updated-for-charting-s-march-09-release.aspx"&gt;Silverlight Charting remains just a click away - and runs on WPF, too!! [ChartBuilder sample and source code updated for Charting's March 09 release]&lt;/A&gt; &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2009/03/25/supporting-the-unsupported-two-fixes-for-the-unofficial-wpf-charting-assembly.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/03/25/supporting-the-unsupported-two-fixes-for-the-unofficial-wpf-charting-assembly.aspx"&gt;Supporting the unsupported [Two fixes for the unofficial WPF Charting assembly!]&lt;/A&gt; &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2009/03/26/if-they-can-build-it-they-will-come-enabling-anyone-to-compile-wpf-charting-from-the-silverlight-charting-sources.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/03/26/if-they-can-build-it-they-will-come-enabling-anyone-to-compile-wpf-charting-from-the-silverlight-charting-sources.aspx"&gt;If they can build it, they will come... [Enabling anyone to compile WPF Charting from the Silverlight Charting sources!]&lt;/A&gt; &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2009/04/22/another-round-of-un-support-quick-fix-for-the-unofficial-wpf-charting-assembly.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/04/22/another-round-of-un-support-quick-fix-for-the-unofficial-wpf-charting-assembly.aspx"&gt;Another round of (un)support [Quick fix for the unofficial WPF Charting assembly!]&lt;/A&gt; &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2009/05/12/pineapple-upside-down-chart-how-to-invert-the-axis-of-a-chart-for-smaller-is-better-scenarios.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/05/12/pineapple-upside-down-chart-how-to-invert-the-axis-of-a-chart-for-smaller-is-better-scenarios.aspx"&gt;Pineapple upside-down chart [How to: Invert the axis of a chart for "smaller is better" scenarios]&lt;/A&gt; &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2009/05/19/chart-tweaking-made-easy-how-to-make-four-simple-color-tooltip-changes-with-silverlight-wpf-charting.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/05/19/chart-tweaking-made-easy-how-to-make-four-simple-color-tooltip-changes-with-silverlight-wpf-charting.aspx"&gt;Chart tweaking made easy [How to: Make four simple color/ToolTip changes with Silverlight/WPF Charting]&lt;/A&gt; &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2009/06/15/peanut-butter-jelly-time-how-to-create-a-pleasing-visual-effect-with-silverlight-wpf-charting.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/06/15/peanut-butter-jelly-time-how-to-create-a-pleasing-visual-effect-with-silverlight-wpf-charting.aspx"&gt;Peanut butter jelly time [How to: Create a pleasing visual effect with Silverlight/WPF Charting]&lt;/A&gt; &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2009/06/25/wpf-charting-it-s-official-june-2009-release-of-the-wpf-toolkit-is-now-available.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/06/25/wpf-charting-it-s-official-june-2009-release-of-the-wpf-toolkit-is-now-available.aspx"&gt;WPF Charting: It's official! [June 2009 release of the WPF Toolkit is now available!]&lt;/A&gt; &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2009/07/10/silverlight-charting-gets-an-update-and-a-treemap-silverlight-toolkit-july-2009-release-now-available.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/07/10/silverlight-charting-gets-an-update-and-a-treemap-silverlight-toolkit-july-2009-release-now-available.aspx"&gt;Silverlight Charting gets an update - and a TreeMap! [Silverlight Toolkit July 2009 release now available!]&lt;/A&gt; &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2009/07/16/bringing-the-silverlight-toolkit-s-treemap-to-wpf-silverlight-wpf-data-visualization-development-release-0.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/07/16/bringing-the-silverlight-toolkit-s-treemap-to-wpf-silverlight-wpf-data-visualization-development-release-0.aspx"&gt;Bringing the Silverlight Toolkit's TreeMap to WPF [Silverlight/WPF Data Visualization Development Release 0]&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2009/07/27/simple-column-labels-you-can-create-at-home-re-templating-the-silverlight-wpf-data-visualization-columndatapoint-to-add-annotations.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/07/27/simple-column-labels-you-can-create-at-home-re-templating-the-silverlight-wpf-data-visualization-columndatapoint-to-add-annotations.aspx"&gt;Simple column labels you can create at home! [Re-Templating the Silverlight/WPF Data Visualization ColumnDataPoint to add annotations]&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2009/09/13/a-preview-of-upcoming-charting-changes-silverlight-wpf-data-visualization-development-release-1.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/09/13/a-preview-of-upcoming-charting-changes-silverlight-wpf-data-visualization-development-release-1.aspx"&gt;A preview of upcoming Charting changes [Silverlight/WPF Data Visualization Development Release 1]&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2009/10/19/silverlight-and-wpf-data-visualization-classes-unsealed-silverlight-toolkit-october-2009-release-now-available.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/10/19/silverlight-and-wpf-data-visualization-classes-unsealed-silverlight-toolkit-october-2009-release-now-available.aspx"&gt;Silverlight (and WPF) Data Visualization classes unsealed [Silverlight Toolkit October 2009 release now available!]&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2009/10/21/two-birds-one-stone-silverlight-wpf-data-visualization-development-release-2-and-datavisualizationdemos-update.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/10/21/two-birds-one-stone-silverlight-wpf-data-visualization-development-release-2-and-datavisualizationdemos-update.aspx"&gt;Two birds, one stone [Silverlight/WPF Data Visualization Development Release 2 and DataVisualizationDemos update]&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Many, many thanks to everyone who's spent time helping others learn how to use Silverlight/WPF Data Visualization! &lt;/P&gt;
&lt;P&gt;PS - If I've missed any good resources, please leave a comment with a link - I'm always happy to find more good stuff! &lt;NOBR&gt;:)&lt;/NOBR&gt; 
&lt;P&gt;&lt;STRONG&gt;PPS - The most recent version of this collection will always be pointed to by &lt;A href="http://cesso.org/r/DVLinks" mce_href="http://cesso.org/r/DVLinks"&gt;http://cesso.org/r/DVLinks&lt;/A&gt;. If you're going to link to this post, please use that URL so you'll always be up to date. &lt;/STRONG&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9914196" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/delay/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/delay/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/delay/archive/tags/Silverlight+Toolkit/default.aspx">Silverlight Toolkit</category><category domain="http://blogs.msdn.com/delay/archive/tags/WPF+Toolkit/default.aspx">WPF Toolkit</category></item><item><title>Two birds, one stone [Silverlight/WPF Data Visualization Development Release 2 and DataVisualizationDemos update]</title><link>http://blogs.msdn.com/delay/archive/2009/10/21/two-birds-one-stone-silverlight-wpf-data-visualization-development-release-2-and-datavisualizationdemos-update.aspx</link><pubDate>Wed, 21 Oct 2009 19:02:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9910837</guid><dc:creator>Delay</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/delay/comments/9910837.aspx</comments><wfw:commentRss>http://blogs.msdn.com/delay/commentrss.aspx?PostID=9910837</wfw:commentRss><description>&lt;DIV class=delay&gt;
&lt;P&gt;The &lt;A href="http://silverlight.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=30514" mce_href="http://silverlight.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=30514"&gt;October 2009 release&lt;/A&gt; of the &lt;A href="http://silverlight.codeplex.com/" mce_href="http://silverlight.codeplex.com/"&gt;Silverlight Toolkit&lt;/A&gt; came out on Monday and the Data Visualization assembly includes some nice updates. &lt;A href="http://blogs.msdn.com/delay/archive/2009/10/19/silverlight-and-wpf-data-visualization-classes-unsealed-silverlight-toolkit-october-2009-release-now-available.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/10/19/silverlight-and-wpf-data-visualization-classes-unsealed-silverlight-toolkit-october-2009-release-now-available.aspx"&gt;I discussed the details of the new release&lt;/A&gt; then and promised to revise my samples to run on the new bits. While I anticipated doing things separately, it turned out to be easier to do everything at once. Here goes! &lt;NOBR&gt;:)&lt;/NOBR&gt; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Silverlight/WPF Data Visualization Development Release 2 &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;In the grand tradition of &lt;A href="http://blogs.msdn.com/delay/archive/2009/07/16/bringing-the-silverlight-toolkit-s-treemap-to-wpf-silverlight-wpf-data-visualization-development-release-0.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/07/16/bringing-the-silverlight-toolkit-s-treemap-to-wpf-silverlight-wpf-data-visualization-development-release-0.aspx"&gt;Data Visualization Development Releases&lt;/A&gt;, I've updated things to match the most recently released Toolkit code. In this case, that's the Silverlight Toolkit, so the code in the new Development Release is identical to what just went out with the Silverlight Toolkit. That means there's a bunch of &lt;STRONG&gt;new&lt;/STRONG&gt; code for WPF here! People using Data Visualization on WPF can take advantage of the latest changes by updating to the binaries included with this Development Release or by compiling the corresponding code themselves. The &lt;A href="http://blogs.msdn.com/delay/archive/2009/10/19/silverlight-and-wpf-data-visualization-classes-unsealed-silverlight-toolkit-october-2009-release-now-available.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/10/19/silverlight-and-wpf-data-visualization-classes-unsealed-silverlight-toolkit-october-2009-release-now-available.aspx"&gt;release notes&lt;/A&gt; detail all the changes; there's nothing to call out here. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A href="http://cesso.org/Samples/SilverlightWpfDataVisualization/SilverlightWpfDataVisualization.zip" mce_href="http://cesso.org/Samples/SilverlightWpfDataVisualization/SilverlightWpfDataVisualization.zip"&gt;[Click here to download the SilverlightWpfDataVisualization solution including complete source code and pre-compiled binaries for both platforms.]&lt;/A&gt; &lt;/STRONG&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;DataVisualizationDemos Sample Project Updated &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The DataVisualizationDemos application is a collection of all the Data Visualization samples I've posted to my blog. Like the Data Visualization assembly itself, the demo application runs on Silverlight and WPF and shares the same code and XAML across both platforms. Not only is it a convenient way to look at a variety of sample code, it also has links back to the relevant blog posts for more detail about each sample. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A href="http://cesso.org/Samples/DataVisualizationDemos/DataVisualizationDemos.zip" mce_href="http://cesso.org/Samples/DataVisualizationDemos/DataVisualizationDemos.zip"&gt;Click here to download the complete source code for the cross-platform DataVisualizationDemos sample application.&lt;/A&gt; &lt;/STRONG&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Notes: &lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;New to this release of the DataVisualizationDemos is my &lt;A href="http://blogs.msdn.com/delay/archive/2009/07/27/simple-column-labels-you-can-create-at-home-re-templating-the-silverlight-wpf-data-visualization-columndatapoint-to-add-annotations.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/07/27/simple-column-labels-you-can-create-at-home-re-templating-the-silverlight-wpf-data-visualization-columndatapoint-to-add-annotations.aspx"&gt;simple Column annotations&lt;/A&gt; sample. &lt;/LI&gt;
&lt;LI&gt;I've added &lt;A href="http://msdn.microsoft.com/en-us/library/dd550721(VS.95).aspx" mce_href="http://msdn.microsoft.com/en-us/library/dd550721(VS.95).aspx"&gt;out-of-browser support&lt;/A&gt; to the Silverlight version of DataVisualizationDemos so users can easily install it and/or run it outside the browser. &lt;/LI&gt;
&lt;LI&gt;Both flavors of DataVisualizationDemos now take advantage of custom icons for a little bit of added flair: &lt;IMG alt="DataVisualizationDemos icon" align=top src="http://blogs.msdn.com/blogfiles/delay/DataVisualizationDemos-32.png" width=32 height=32 mce_src="http://blogs.msdn.com/blogfiles/delay/DataVisualizationDemos-32.png"&gt; &lt;/LI&gt;
&lt;LI&gt;Because this version of the Data Visualization assembly contains a breaking change, the DataVisualizationDemos project can no longer use the assembly that shipped with the WPF Toolkit (or else both platforms wouldn't be able to share the same samples). Therefore, DataVisualizationDemos uses the WPF assembly from Data Visualization Development Release 2. &lt;/LI&gt;
&lt;LI&gt;Which means TreeMap (added after the WPF Toolkit release) can now be part of the WPF version of DataVisualizationDemos! &lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;If you're doing cross-platform development, sometimes you'll come across a control that lives in two different places. When that happens, it's hard to share the same XAML for both platforms - unless you know a trick! My usual technique for this is to declare my own same-named subclass in code (which automatically resolves to the right platform-specific class thanks to the namespace): &lt;/P&gt;&lt;PRE&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;public&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;class&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;DockPanel&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt; : System.Windows.Controls.&lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;DockPanel
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;{
}
&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;And then use my "custom" control (after adding the corresponding XML namespace declaration): &lt;/P&gt;&lt;PRE&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;local&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;DockPanel&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt; ... /&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;That works swell most of the time - except for when the class is sealed like &lt;CODE&gt;Viewbox&lt;/CODE&gt; is on Silverlight... So I came up with a slight tweak of this strategy that solves the problem: &lt;/P&gt;&lt;PRE&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;#if&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt; SILVERLIGHT
    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #008000"&gt;// Silverlight's Viewbox is sealed; simulate it with a ContentControl wrapper
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;public&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;class&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;Viewbox&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt; : &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;ContentControl
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;    {
        &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;public&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt; Viewbox()
        {
            Template = (&lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;ControlTemplate&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;)&lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;XamlReader&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;.Load(&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;@"
                &amp;lt;ControlTemplate
                    xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation""
                    xmlns:controls=""clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Toolkit""&amp;gt;
                    &amp;lt;controls:Viewbox&amp;gt;
                        &amp;lt;ContentPresenter/&amp;gt;
                    &amp;lt;/controls:Viewbox&amp;gt;
                &amp;lt;/ControlTemplate&amp;gt;"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;);
        }
    }
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;#else
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #808080"&gt;    public class Viewbox : System.Windows.Controls.Viewbox
    {
    }
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;#endif
&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;And then just use it the same as above: &lt;/P&gt;&lt;PRE&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;local&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Viewbox&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt; ... /&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The latest Data Visualization release has some nice improvements - I hope these two updates help people understand the new functionality and make it even easier to upgrade! &lt;/P&gt;&lt;/DIV&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9910837" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/delay/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/delay/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/delay/archive/tags/Silverlight+Toolkit/default.aspx">Silverlight Toolkit</category><category domain="http://blogs.msdn.com/delay/archive/tags/WPF+Toolkit/default.aspx">WPF Toolkit</category></item><item><title>Silverlight (and WPF) Data Visualization classes unsealed [Silverlight Toolkit October 2009 release now available!]</title><link>http://blogs.msdn.com/delay/archive/2009/10/19/silverlight-and-wpf-data-visualization-classes-unsealed-silverlight-toolkit-october-2009-release-now-available.aspx</link><pubDate>Mon, 19 Oct 2009 17:22:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9909244</guid><dc:creator>Delay</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/delay/comments/9909244.aspx</comments><wfw:commentRss>http://blogs.msdn.com/delay/commentrss.aspx?PostID=9909244</wfw:commentRss><description>&lt;DIV class=delay&gt;
&lt;P&gt;We've just published the &lt;A href="http://silverlight.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=30514" mce_href="http://silverlight.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=30514"&gt;October 2009 release&lt;/A&gt; of the &lt;A href="http://silverlight.codeplex.com/" mce_href="http://silverlight.codeplex.com/"&gt;Silverlight Toolkit&lt;/A&gt; as part of today's &lt;A href="http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx" mce_href="http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx"&gt;.NET 4 and Visual Studio 2010's Beta 2 release&lt;/A&gt;! One of the big things we've done with this release of the Toolkit is to add rich support for Visual Studio 2010's &lt;STRONG&gt;vastly improved&lt;/STRONG&gt; Silverlight design-time experience. In fact, the new VS 2010 design-time experience has gotten &lt;STRONG&gt;so&lt;/STRONG&gt; good that some developers have stopped using Blend altogether! &lt;NOBR&gt;:)&lt;/NOBR&gt; I encourage everyone to have a look at the live samples for the latest release of the &lt;A href="http://silverlight.net/samples/sl3/toolkitcontrolsamples/run/default.html" mce_href="http://silverlight.net/samples/sl3/toolkitcontrolsamples/run/default.html"&gt;Silverlight 3 Toolkit&lt;/A&gt;, download the Toolkit installer, and try for yourself! &lt;/P&gt;
&lt;P&gt;Other big news for this release is the introduction of comprehensive, WPF-compatible drag-and-drop support for Silverlight! Although this support doesn't extend outside the web browser (that would require changes to Silverlight itself), it enables full-fidelity drag-and-drop experiences within the browser using the same API that WPF users are already accustomed to. And if that wasn't enough, there are also a collection of drag-and-drop-friendly "wrapper controls" for common scenarios (ex: &lt;CODE&gt;ListBox&lt;/CODE&gt;, &lt;CODE&gt;TreeView&lt;/CODE&gt;, and &lt;CODE&gt;DataGrid&lt;/CODE&gt;) that make it trivial to add support for drag-and-drop to an existing control. Dragging and dropping within a control (to re-order items) or between controls (to move items around) is now just a few lines of XAML away! (Note: &lt;STRONG&gt;No&lt;/STRONG&gt; code changes necessary!) But wait, there's more: There's also a wrapper for Charting's &lt;CODE&gt;DataPointSeries&lt;/CODE&gt; that enables drag-and-drop into and out of a live &lt;CODE&gt;Chart&lt;/CODE&gt; control! This really needs to be seen to be believed, so please visit the "Drag and Drop" page of the &lt;A href="http://silverlight.net/samples/sl3/toolkitcontrolsamples/run/default.html" mce_href="http://silverlight.net/samples/sl3/toolkitcontrolsamples/run/default.html"&gt;public samples&lt;/A&gt; for a great example of this. Then go read &lt;A href="http://themechanicalbride.blogspot.com/2009/08/new-with-silverlight-toolkit-drag-and.html" mce_href="http://themechanicalbride.blogspot.com/2009/08/new-with-silverlight-toolkit-drag-and.html"&gt;Jafar's post about the new drag/drop support&lt;/A&gt; for all the juicy details! &lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;STRONG&gt;Note&lt;/STRONG&gt;: The October 09 release of the Silverlight Toolkit includes binaries for Silverlight 3 only. Now that Silverlight 3 has been out for a few months and is fully backward-compatible with all Silverlight 2 applications, we expect that everyone has upgraded from Silverlight 2 and are therefore no longer actively developing the Toolkit for Silverlight 2. Of course, if some of you have a specific need for Silverlight 2 Toolkit bits, previous releases continue to be available to download from CodePlex! &lt;/BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;With the introductory stuff out of the way, let's move on to the details of changes to the Data Visualization assembly and the corresponding improvements to &lt;A href="http://cesso.org/r/DVLinks" mce_href="http://cesso.org/r/DVLinks"&gt;Silverlight and WPF Charting&lt;/A&gt;. My recent post on &lt;A href="http://blogs.msdn.com/delay/archive/2009/09/13/a-preview-of-upcoming-charting-changes-silverlight-wpf-data-visualization-development-release-1.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/09/13/a-preview-of-upcoming-charting-changes-silverlight-wpf-data-visualization-development-release-1.aspx"&gt;Data Visualization Development Release 1&lt;/A&gt; has already discussed most of these changes at length, so I'm just going to include the change descriptions here. For more detail on the motivation behind these changes or their implications for current and future possibilities, please refer back to that post. &lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Notable Changes&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Unsealed (i.e., removed the "sealed" modifier from) all core Data Visualization classes.&lt;/STRONG&gt; Although we aren't yet completely settled on the public-facing API for Data Visualization and reserve the right to make breaking changes in the future, these classes are being unsealed now to help simplify a wide variety of user scenarios that are being actively developed and that are cumbersome without the ability to subclass (without needing to create a private build of the assembly solely for the purpose of unsealing these classes). Other changes were kept to a minimum, but a couple of methods have been changed to protected virtual for consistency and/or convenience as well as some tweaks that resulted due to new code analysis warnings due to explicit interface implementations in an unsealed class. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Introduced ISeries interface to Charting as "base interface" for all Series.&lt;/STRONG&gt; This allows users to write &lt;CODE&gt;ItemsControl&lt;/CODE&gt;-based &lt;CODE&gt;Series&lt;/CODE&gt; which will automatically leverage all of the &lt;CODE&gt;ItemsControl&lt;/CODE&gt; infrastructure for creating points, tracking data changes, etc. and also gives us a safe root for a future 3D series hierarchy. As part of this change, some interfaces have been cleaned up a bit (&lt;CODE&gt;IStyleDispenser&lt;/CODE&gt;, &lt;CODE&gt;ISeriesHost&lt;/CODE&gt;) and others have been created (&lt;CODE&gt;IStyleDispenser.StylesChanged&lt;/CODE&gt; event). Also, some public methods with little justification have been removed/made private/moved lower (&lt;CODE&gt;Chart.Refresh&lt;/CODE&gt;, &lt;CODE&gt;Chart.ResetStyles&lt;/CODE&gt;, &lt;CODE&gt;StyleDispenser.ResetStyles&lt;/CODE&gt;) and some vestigial code has been removed (&lt;CODE&gt;ISeriesHost.GlobalSeriesIndexesInvalidated&lt;/CODE&gt;). &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Various usability improvements.&lt;/STRONG&gt; Updated &lt;CODE&gt;Series&lt;/CODE&gt; to look for "LegendItemStyle" in their &lt;CODE&gt;ResourceDictionary&lt;/CODE&gt; for increased customizability. Added &lt;CODE&gt;Owner&lt;/CODE&gt; property to &lt;CODE&gt;LegendItem&lt;/CODE&gt; pointing to owning &lt;CODE&gt;Series&lt;/CODE&gt; instance to simplify &lt;CODE&gt;LegendItem&lt;/CODE&gt;-based user scenarios. Added &lt;CODE&gt;ActualDataPointStyle&lt;/CODE&gt; and &lt;CODE&gt;ActualLegendItemStyle&lt;/CODE&gt; properties and used &lt;CODE&gt;Bindings&lt;/CODE&gt; to automatically propagate changes to the right places. (Aside: This fixes a bug that was reported against the WPF Toolkit &lt;EM&gt;as I was making the change&lt;/EM&gt;!) Moved code so that &lt;CODE&gt;PieSeries&lt;/CODE&gt; now has the &lt;CODE&gt;DataPointStyle&lt;/CODE&gt; property like the other &lt;CODE&gt;Series&lt;/CODE&gt;. Updated &lt;CODE&gt;LegendItem&lt;/CODE&gt; default &lt;CODE&gt;Template&lt;/CODE&gt; to include standard &lt;CODE&gt;TemplateBindings&lt;/CODE&gt; for &lt;CODE&gt;Background&lt;/CODE&gt;/&lt;CODE&gt;BorderBrush&lt;/CODE&gt;/&lt;CODE&gt;BorderThickness&lt;/CODE&gt; for more friendly designer experience. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Breaking Changes&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Renamed Charting's StylePalette to Palette (for clarity) AND changed its type to IEnumerable&amp;lt;ResourceDictionary&amp;gt; (from IEnumerable&amp;lt;Style&amp;gt;) for a significant flexibility boost.&lt;/STRONG&gt; Performed related renamings (many internal/private): &lt;CODE&gt;IStyleDispenser&lt;/CODE&gt;-&amp;gt;&lt;CODE&gt;IResourceDictionaryDispenser&lt;/CODE&gt;, &lt;CODE&gt;StylePalette&lt;/CODE&gt;-&amp;gt;&lt;CODE&gt;ResourceDictionaryCollection&lt;/CODE&gt;, &lt;CODE&gt;StyleDispensedEventArgs&lt;/CODE&gt;-&amp;gt;&lt;CODE&gt;ResourceDictionaryDispensedEventArgs&lt;/CODE&gt;, &lt;CODE&gt;StyleDispenser&lt;/CODE&gt;-&amp;gt;&lt;CODE&gt;ResourceDictionaryDispenser&lt;/CODE&gt;, &lt;CODE&gt;StyleEnumerator&lt;/CODE&gt;-&amp;gt;&lt;CODE&gt;ResourceDictionaryEnumerator&lt;/CODE&gt;. &lt;BR&gt;&lt;BR&gt;Most notably, this change makes it possible to associate MULTIPLE things with a palette entry and enables designers to easily and flexibly customize things like the &lt;CODE&gt;LineSeries&lt;/CODE&gt; &lt;CODE&gt;PolyLineStyle&lt;/CODE&gt; in the &lt;CODE&gt;Palette&lt;/CODE&gt;. Additionally it enables the use of &lt;CODE&gt;DynamicResource&lt;/CODE&gt; (currently only supported by the WPF platform) to let users customize their &lt;CODE&gt;DataPointStyle&lt;/CODE&gt; &lt;EM&gt;without&lt;/EM&gt; inadvertently losing the default/custom Palette colors. (Note: A &lt;STRONG&gt;very&lt;/STRONG&gt; popular request!) Thanks to merged &lt;CODE&gt;ResourceDictionaries&lt;/CODE&gt;, this also enables the addition of arbitrary resources at the &lt;CODE&gt;Palette&lt;/CODE&gt; level (like &lt;CODE&gt;Brushes&lt;/CODE&gt;) which can then be referenced by &lt;CODE&gt;DataPoints&lt;/CODE&gt;, etc.. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Changed return value of Charting's IAxis.GetPlotAreaCoordinate from UnitValue? to UnitValue to better support custom Axis implementations.&lt;/STRONG&gt; Specifically, some numeric axis types (logarithmic axis, for example) don't support all numeric values and need a way to indicate that certain values (ex: &amp;lt;= 0 for logarithmic) are "not supported" for plotting. This was previously done by returning a &lt;CODE&gt;null&lt;/CODE&gt; value, but now the code should return a &lt;CODE&gt;UnitValue&lt;/CODE&gt; with &lt;CODE&gt;Value=double.NaN&lt;/CODE&gt;. Convenience method &lt;CODE&gt;UnitValue.NaN&lt;/CODE&gt; has been added to create such values easily. Because the &lt;CODE&gt;Series&lt;/CODE&gt; implementations already need to handle &lt;CODE&gt;NaN&lt;/CODE&gt; values, this change collapses two different edge cases into one and simplifies the code accordingly. Added code to &lt;CODE&gt;Series&lt;/CODE&gt; to handle this situation by hiding (via &lt;CODE&gt;Visibility=Collapsed&lt;/CODE&gt;) &lt;CODE&gt;DataPoints&lt;/CODE&gt; on coordinates that are not valid. &lt;/P&gt;
&lt;P&gt;One notable consequence of this change is that the &lt;CODE&gt;Visibility&lt;/CODE&gt; of &lt;CODE&gt;DataPoint&lt;/CODE&gt;s is now controlled by the &lt;CODE&gt;Series&lt;/CODE&gt; and will be set to &lt;CODE&gt;Visible&lt;/CODE&gt; or &lt;CODE&gt;Collapsed&lt;/CODE&gt; as necessary. Therefore, any customizations that directly set this property may no longer work, but there are other simple ways of achieving the same effect and this change is not expected to cause any difficulty. For example, the "Sparkline" demo of the samples project was affected by this change because it provided a custom &lt;CODE&gt;DataPointStyle&lt;/CODE&gt; that set &lt;CODE&gt;Visibility&lt;/CODE&gt; to &lt;CODE&gt;Collapsed&lt;/CODE&gt;. The fix is not only trivial, but an improvement: change the &lt;CODE&gt;Style&lt;/CODE&gt; to specify a &lt;CODE&gt;null&lt;/CODE&gt; &lt;CODE&gt;Template&lt;/CODE&gt; instead! &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Other Changes&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Remove unnecessary code.&lt;/STRONG&gt; Moved duplicated &lt;CODE&gt;DependencyProperties&lt;/CODE&gt; &lt;CODE&gt;IRangeAxis&lt;/CODE&gt; &lt;CODE&gt;DependentRangeAxis&lt;/CODE&gt; and &lt;CODE&gt;IAxis&lt;/CODE&gt; &lt;CODE&gt;IndependentAxis&lt;/CODE&gt; from &lt;CODE&gt;ColumnSeries&lt;/CODE&gt; and &lt;CODE&gt;BarSeries&lt;/CODE&gt; into common base class &lt;CODE&gt;ColumnBarBaseSeries&lt;/CODE&gt;. Moved duplicated &lt;CODE&gt;DependencyProperties&lt;/CODE&gt; &lt;CODE&gt;IRangeAxis&lt;/CODE&gt; &lt;CODE&gt;DependentRangeAxis&lt;/CODE&gt; and &lt;CODE&gt;IAxis&lt;/CODE&gt; &lt;CODE&gt;IndependentAxis&lt;/CODE&gt; from &lt;CODE&gt;AreaSeries&lt;/CODE&gt; and &lt;CODE&gt;LineSeries&lt;/CODE&gt; into common base class &lt;CODE&gt;LineAreaBaseSeries&lt;/CODE&gt;. Made similar changes for methods &lt;CODE&gt;OnApplyTemplate&lt;/CODE&gt; and &lt;CODE&gt;UpdateDataPoint&lt;/CODE&gt; and half of &lt;CODE&gt;UpdateShape&lt;/CODE&gt;. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Simplified default Palette Brushes by removing ScaleTransform and TranslateTransform and replacing with RadialBrush.&lt;/STRONG&gt; The on-screen visuals remain the same, but the XAML is considerably smaller and simpler - and should be a bit quicker to render as well! &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Various other small changes.&lt;/STRONG&gt; &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Of the two breaking changes, only the rename to &lt;CODE&gt;Palette&lt;/CODE&gt; is likely to affect most people. Fortunately, converting existing code/XAML is really quite simple - which you can see as I recycle the example I gave &lt;A href="http://blogs.msdn.com/delay/archive/2009/09/13/a-preview-of-upcoming-charting-changes-silverlight-wpf-data-visualization-development-release-1.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/09/13/a-preview-of-upcoming-charting-changes-silverlight-wpf-data-visualization-development-release-1.aspx"&gt;previously&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;The &lt;STRONG&gt;old&lt;/STRONG&gt; way: &lt;/P&gt;&lt;PRE&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;chartingToolkit&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Chart&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Title&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Statistics (Custom Palette)"&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;chartingToolkit&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Chart.StylePalette&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;        &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;visualizationToolkit&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;StylePalette&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;            &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; TargetType&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Control"&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Setter&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Property&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Background"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Value&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Blue"/&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;            &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;            &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; TargetType&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Control"&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Setter&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Property&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Background"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Value&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Green"/&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;            &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;            &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; TargetType&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Control"&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Setter&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Property&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Background"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Value&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Red"/&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;            &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;        &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;visualizationToolkit&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;StylePalette&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;chartingToolkit&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Chart.StylePalette&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;    ...
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;chartingToolkit&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Chart&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;And the &lt;STRONG&gt;new&lt;/STRONG&gt; way (with changes highlighted): &lt;/P&gt;&lt;PRE&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;chartingToolkit&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Chart&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Title&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Statistics (Custom Palette)"&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;chartingToolkit&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Chart.&lt;SPAN style="BACKGROUND-COLOR: yellow"&gt;Palette&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;        &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;visualizationToolkit&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;&lt;SPAN style="BACKGROUND-COLOR: yellow"&gt;ResourceDictionaryCollection&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;            &lt;/SPAN&gt;&lt;SPAN style="BACKGROUND-COLOR: yellow"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;ResourceDictionary&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Style &lt;/SPAN&gt;&lt;SPAN style="BACKGROUND-COLOR: yellow"&gt;&lt;SPAN style="COLOR: #ff0000"&gt;x&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt;Key&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="DataPointStyle"&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; TargetType&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Control"&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Setter&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Property&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Background"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Value&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Blue"/&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;            &lt;/SPAN&gt;&lt;SPAN style="BACKGROUND-COLOR: yellow"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;ResourceDictionary&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;            &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;ResourceDictionary&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; x&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt;Key&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="DataPointStyle"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; TargetType&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Control"&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Setter&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Property&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Background"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Value&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Green"/&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;            &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;ResourceDictionary&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;            &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;ResourceDictionary&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; x&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt;Key&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="DataPointStyle"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; TargetType&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Control"&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Setter&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Property&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Background"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Value&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Red"/&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;            &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;ResourceDictionary&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;        &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;visualizationToolkit&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;&lt;SPAN style="BACKGROUND-COLOR: yellow"&gt;ResourceDictionaryCollection&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;chartingToolkit&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Chart.&lt;SPAN style="BACKGROUND-COLOR: yellow"&gt;Palette&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;    ...
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;chartingToolkit&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Chart&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;It's pretty clear that once you've done this once, it'll be easy to do anywhere else your project requires. I explained the motivations for this change previously, so I won't repeat myself here - I just wanted to call out how straightforward the upgrade is expected to be. &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Clearly, the big news for Data Visualization is the unsealing of the primary charting classes! Because I went into great detail on this &lt;A href="http://blogs.msdn.com/delay/archive/2009/09/13/a-preview-of-upcoming-charting-changes-silverlight-wpf-data-visualization-development-release-1.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/09/13/a-preview-of-upcoming-charting-changes-silverlight-wpf-data-visualization-development-release-1.aspx"&gt;earlier&lt;/A&gt;, I won't spend a lot of time on that here. Instead, I'd like to call out a particularly timely and relevant use of the new subclassing ability: &lt;A href="http://www.cplotts.com/" mce_href="http://www.cplotts.com/"&gt;Cory Plotts'&lt;/A&gt; &lt;A href="http://www.cplotts.com/2009/10/09/wpf-silverlight-charting-a-logarithmic-axis/" mce_href="http://www.cplotts.com/2009/10/09/wpf-silverlight-charting-a-logarithmic-axis/"&gt;LogarithmicAxis implementation for WPF and Silverlight&lt;/A&gt;! What's great about what he's done is that logarithmic axis support is one of our most requested features, and something we haven't had a chance to implement yet. I've always hoped that somebody in the community would be able to step up and share something here, so I was really excited to see Cory's blog post. If you're one of the users who's been waiting for a logarithmic axis, please have a look at Cory's implementation and see if it does what you need! &lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;STRONG&gt;Aside&lt;/STRONG&gt;: You might be wondering why we haven't gotten to logarithmic axis ourselves... Well, as you may be aware, we've been operating under severe resource constraints from the beginning, and that forces us to try to choose our investments carefully. When we're trying to decide between two features and one of them constitutes a change to the core of the Charting framework while the other is something that derives from an existing class to build on top of the framework, we'll tend to make the core framework change and hope that the community is able to help with the subclassing change. Honestly, this seems like the right balance to me and is a large part of why we're unsealing now even though the Charting APIs aren't completely set in stone. &lt;/BLOCKQUOTE&gt;
&lt;P&gt;Along similar lines, I encourage people who have been wanting to annotate their &lt;CODE&gt;PieSeries&lt;/CODE&gt; charts to have a look at the fantastic work &lt;A href="http://bea.stollnitz.com/blog/" mce_href="http://bea.stollnitz.com/blog/"&gt;Bea Stollnitz&lt;/A&gt; has done: &lt;A href="http://bea.stollnitz.com/blog/?p=353" mce_href="http://bea.stollnitz.com/blog/?p=353"&gt;Part 1&lt;/A&gt;, &lt;A href="http://bea.stollnitz.com/blog/?p=363" mce_href="http://bea.stollnitz.com/blog/?p=363"&gt;Part 2&lt;/A&gt;, &lt;A href="http://bea.stollnitz.com/blog/?p=366" mce_href="http://bea.stollnitz.com/blog/?p=366"&gt;Part 3&lt;/A&gt;. Bea built on top of the sealed Charting hierarchy using some pretty clever tricks and techniques. But now that we've unsealed, it's my hope that she'll be able to take advantage of that to spend more time working on the great features she's adding and less time trying to jump through artificial hoops. &lt;NOBR&gt;:)&lt;/NOBR&gt; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;There are two other things I'd like to call out here: &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;I'll post an updated version of my &lt;A href="http://blogs.msdn.com/delay/archive/2009/06/25/wpf-charting-it-s-official-june-2009-release-of-the-wpf-toolkit-is-now-available.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/06/25/wpf-charting-it-s-official-june-2009-release-of-the-wpf-toolkit-is-now-available.aspx"&gt;DataVisualizationDemos sample application&lt;/A&gt; in the next couple of days to make sure people have lots of good Charting examples using the new &lt;CODE&gt;Palette&lt;/CODE&gt; syntax. &lt;/LI&gt;
&lt;LI&gt;I'll post a new &lt;A href="http://blogs.msdn.com/delay/archive/2009/09/13/a-preview-of-upcoming-charting-changes-silverlight-wpf-data-visualization-development-release-1.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/09/13/a-preview-of-upcoming-charting-changes-silverlight-wpf-data-visualization-development-release-1.aspx"&gt;Silverlight/WPF Data Visualization Development Release&lt;/A&gt; shortly after that to give anyone who wants pre-compiled binaries for WPF (or an easy way to compile for both platforms at once) what they need to be successful. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;As always, if you have any questions or feedback, the right places to start are the &lt;A href="http://forums.silverlight.net/forums/35.aspx" mce_href="http://forums.silverlight.net/forums/35.aspx"&gt;Silverlight Discussion Forum&lt;/A&gt; or the &lt;A href="http://wpf.codeplex.com/Thread/List.aspx" mce_href="http://wpf.codeplex.com/Thread/List.aspx"&gt;WPF Discussion List&lt;/A&gt;. Bugs and feature requests can be logged with the &lt;A href="http://silverlight.codeplex.com/WorkItem/List.aspx" mce_href="http://silverlight.codeplex.com/WorkItem/List.aspx"&gt;Silverlight Issue Tracker&lt;/A&gt; or the &lt;A href="http://wpf.codeplex.com/WorkItem/List.aspx" mce_href="http://wpf.codeplex.com/WorkItem/List.aspx"&gt;WPF Issue Tracker&lt;/A&gt;. Please raise issues that are clearly unique to one platform or the other in the obvious place. But for general questions and things that are common to both platforms, the Silverlight forum/list is probably a better place because there's more context and history there. &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Thanks very much for your interest in Silverlight and WPF Data Visualization - I hope you like the improvements!&lt;/STRONG&gt; &lt;/P&gt;&lt;/DIV&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9909244" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/delay/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/delay/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/delay/archive/tags/Silverlight+Toolkit/default.aspx">Silverlight Toolkit</category><category domain="http://blogs.msdn.com/delay/archive/tags/WPF+Toolkit/default.aspx">WPF Toolkit</category></item><item><title>I get by with a little help from my friends [PieSeries annotations trilogy complete!]</title><link>http://blogs.msdn.com/delay/archive/2009/09/21/i-get-by-with-a-little-help-from-my-friends-pieseries-annotations-trilogy-complete.aspx</link><pubDate>Mon, 21 Sep 2009 10:37:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9897448</guid><dc:creator>Delay</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/delay/comments/9897448.aspx</comments><wfw:commentRss>http://blogs.msdn.com/delay/commentrss.aspx?PostID=9897448</wfw:commentRss><description>&lt;DIV class=delay&gt;
&lt;P&gt;Friend and fellow Charting fan &lt;A href="http://bea.stollnitz.com/blog/" mce_href="http://bea.stollnitz.com/blog/"&gt;Bea Stollnitz&lt;/A&gt; has just completed a 3-post series describing how to add annotations to pie charts created by the Data Visualization package that's part of the &lt;A href="http://silverlight.codeplex.com/" mce_href="http://silverlight.codeplex.com/"&gt;Silverlight Toolkit&lt;/A&gt; and &lt;A href="http://wpf.codeplex.com/" mce_href="http://wpf.codeplex.com/"&gt;WPF Toolkit&lt;/A&gt;. Because annotations are a feature that we'd love to implement ourselves (but haven't had time for yet), I'm delighted that someone in the community has taken this task on - and shared the experience for the benefit of others! &lt;/P&gt;
&lt;P&gt;Here are direct links to Bea's posts: &lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;A href="http://bea.stollnitz.com/blog/?p=353" mce_href="http://bea.stollnitz.com/blog/?p=353"&gt;How can I add labels to a WPF pie chart?&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://bea.stollnitz.com/blog/?p=363" mce_href="http://bea.stollnitz.com/blog/?p=363"&gt;How can I add labels to a WPF pie chart? – Implementation details&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://bea.stollnitz.com/blog/?p=366" mce_href="http://bea.stollnitz.com/blog/?p=366"&gt;How can I port the WPF labeled pie chart to Silverlight?&lt;/A&gt; &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;My thanks go out to Bea for sharing her time and expertise here - I hope others find this as cool as I do! :) &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;PS&lt;/STRONG&gt; - Please note that while a number of WPF-to-Silverlight incompatibilities are identified in the third post, &lt;STRONG&gt;none&lt;/STRONG&gt; of them come from the Data Visualization assembly. We've specifically spent a good bit of effort to make the Silverlight and WPF code/XAML experience identical for Data Visualization; it's the success of projects like this one that are the reason and reward! &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;PPS&lt;/STRONG&gt; - In the next release of the Data Visualization assembly (&lt;A href="http://blogs.msdn.com/delay/archive/2009/09/13/a-preview-of-upcoming-charting-changes-silverlight-wpf-data-visualization-development-release-1.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/09/13/a-preview-of-upcoming-charting-changes-silverlight-wpf-data-visualization-development-release-1.aspx"&gt;which you can preview now!&lt;/A&gt;), the core Charting classes will no longer be sealed and some of the inconvenience mentioned in the second post should go away. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;PPPS&lt;/STRONG&gt; - &lt;A href="http://blogs.msdn.com/delay/archive/2009/07/27/simple-column-labels-you-can-create-at-home-re-templating-the-silverlight-wpf-data-visualization-columndatapoint-to-add-annotations.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/07/27/simple-column-labels-you-can-create-at-home-re-templating-the-silverlight-wpf-data-visualization-columndatapoint-to-add-annotations.aspx"&gt;Here's my own take on a quick-and-easy way to add simple annotations to ColumnSeries.&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;PPPPS&lt;/STRONG&gt; - If you're looking for more information about the Silverlight/WPF Data Visualization assembly, &lt;A href="http://blogs.msdn.com/delay/archive/2009/07/19/my-new-home-page-enhanced-updated-collection-of-great-silverlight-wpf-data-visualization-resources.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/07/19/my-new-home-page-enhanced-updated-collection-of-great-silverlight-wpf-data-visualization-resources.aspx"&gt;I've collected a bunch of links from across the web - including all of my own introductions and notes&lt;/A&gt;. &lt;/P&gt;&lt;/DIV&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9897448" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/delay/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/delay/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/delay/archive/tags/Silverlight+Toolkit/default.aspx">Silverlight Toolkit</category><category domain="http://blogs.msdn.com/delay/archive/tags/WPF+Toolkit/default.aspx">WPF Toolkit</category></item><item><title>A preview of upcoming Charting changes [Silverlight/WPF Data Visualization Development Release 1]</title><link>http://blogs.msdn.com/delay/archive/2009/09/13/a-preview-of-upcoming-charting-changes-silverlight-wpf-data-visualization-development-release-1.aspx</link><pubDate>Mon, 14 Sep 2009 09:40:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9894842</guid><dc:creator>Delay</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/delay/comments/9894842.aspx</comments><wfw:commentRss>http://blogs.msdn.com/delay/commentrss.aspx?PostID=9894842</wfw:commentRss><description>&lt;DIV class=delay&gt;
&lt;P&gt;It was about two months ago that I posted about &lt;A href="http://blogs.msdn.com/delay/archive/2009/07/16/bringing-the-silverlight-toolkit-s-treemap-to-wpf-silverlight-wpf-data-visualization-development-release-0.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/07/16/bringing-the-silverlight-toolkit-s-treemap-to-wpf-silverlight-wpf-data-visualization-development-release-0.aspx"&gt;Silverlight/WPF Data Visualization Development Release 0&lt;/A&gt;. At the time, I explained how I was hoping to do occasional, out-of-band releases of the Data Visualization assembly that's part of the &lt;A href="http://silverlight.codeplex.com/" mce_href="http://silverlight.codeplex.com/"&gt;Silverlight Toolkit&lt;/A&gt; and &lt;A href="http://wpf.codeplex.com/" mce_href="http://wpf.codeplex.com/"&gt;WPF Toolkit&lt;/A&gt; in order to give people an early glimpse of upcoming changes and maybe get a bit of feedback along the way. &lt;/P&gt;
&lt;P&gt;It's that time again... &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Announcing &lt;STRONG&gt;Silverlight/WPF Data Visualization Development Release 1&lt;/STRONG&gt;! &lt;/STRONG&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As usual, there have been plenty of distractions these past weeks to keep us, um..., distracted - but we've still managed to make some significant architectural tweaks that I think people are going to appreciate. Maybe a little less so in the short term because there are a couple of breaking changes, but definitely in the long term because these changes enable some very interesting scenarios and should do a lot to make it easier to develop with the Data Visualization framework. &lt;/P&gt;
&lt;P&gt;Please bear in mind that this is just a development release, so it hasn't gone through the same level of scrutiny that our official releases get. Therefore, there may be some behavioral anomalies - and if there are, I apologize in advance. So if you &lt;STRONG&gt;do&lt;/STRONG&gt; find an issue, please contact me (by leaving a comment below or by clicking the &lt;A href="http://blogs.msdn.com/delay/contact.aspx" mce_href="http://blogs.msdn.com/delay/contact.aspx"&gt;Email&lt;/A&gt; link on my blog) as I'd love to fix whatever I can before the next official release! &lt;/P&gt;
&lt;P&gt;Because I'm trying to keep the cost of doing Development Releases down, I'm not doing my usual long-winded write up of new features. Instead, I'm going to include the notable changeset descriptions from our source control system along with a few brief notes. If that isn't enough detail to get you excited, then you're probably not the target audience for these Development Releases. &lt;NOBR&gt;;)&lt;/NOBR&gt; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Notable Changes (from the check-in comments)&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;Unseal (i.e., remove the "sealed" modifier) from all Data Visualization classes that were previously sealed. Although we aren't yet completely settled on the public-facing API for Data Visualization and reserve the right to make breaking changes in the future, these classes are being unsealed now to help simplify a wide variety of user scenarios that are being actively developed and that are cumbersome without the ability to subclass (without needing to create a private build of the assembly solely for the purpose of unsealing these classes). Other changes were kept to a minimum, but a couple of methods have been changed to protected virtual for consistency and/or convenience as well as some tweaks that resulted due to new code analysis warnings due to explicit interface implementations in an unsealed class. &lt;/BLOCKQUOTE&gt;
&lt;P&gt;While this is the most controversial change, I think it's the right thing for us to do now. The concern is that people will take our unsealing as encouragement to go off and subclass everything - and then be disappointed/frustrated when they need to change their code after we make some subsequent breaking change to the API. And I sympathize with this concern - so &lt;STRONG&gt;if you're worried about this happening to you, just pretend everything's still sealed for now&lt;/STRONG&gt;. The official indication that the API has stabilized will be when the classes in the Data Visualization assembly change &lt;A href="http://silverlight.codeplex.com/Wiki/View.aspx?title=Quality%20Bands" mce_href="http://silverlight.codeplex.com/Wiki/View.aspx?title=Quality%20Bands"&gt;quality bands&lt;/A&gt; from &lt;CODE&gt;Preview&lt;/CODE&gt; (their current band) to &lt;CODE&gt;Stable&lt;/CODE&gt;. That's not happening yet, so please be aware that there's a certain amount of risk when making the decision to build on the current API. &lt;/P&gt;
&lt;P&gt;That said, I'm of the opinion that we have little to lose with this because the decision is entirely in the customers' hands. If you don't want the risk, don't take it. But if you're doing something cool with Charting and wish you could subclass to avoid a bunch of additional effort, then this change is for you. &lt;NOBR&gt;:)&lt;/NOBR&gt; For instance, &lt;A href="http://bea.stollnitz.com/blog/?p=363" mce_href="http://bea.stollnitz.com/blog/?p=363"&gt;Bea Stollnitz is doing some cool stuff with adding annotations to PieSeries&lt;/A&gt; - and she's basically called us out in that post for making her task harder because our classes are sealed. Well, discouraging folks from using the Data Visualization assembly is the &lt;STRONG&gt;last&lt;/STRONG&gt; thing I'm trying to do - so we're unsealing now to help make the platform as friendly as possible. &lt;/P&gt;
&lt;P&gt;And while you're busy taking advantage of the new ability to subclass, I fully expect there will be places we haven't exposed all the extensibility points people want. When that happens, &lt;STRONG&gt;please let me know&lt;/STRONG&gt;, and we'll look into addressing that oversight in a future release. Think of it as the "You scratch our backs, we'll scratch yours" model of software development... &lt;NOBR&gt;:)&lt;/NOBR&gt; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;Introduce ISeries interface to Charting as "base interface" for all Series. This will allow users to write ItemsControl-based Series which will automatically leverage all of the ItemsControl infrastructure for creating points, tracking data changes, etc. and also gives us a safe root for a future 3D series hierarchy. As part of this change, some interfaces have been cleaned up a bit (IStyleDispenser, ISeriesHost) and others have been created (IStyleDispenser.StylesChanged event). Also, some public methods with little justification have been removed/made private/moved lower (Chart.Refresh, Chart.ResetStyles, StyleDispenser.ResetStyles) and some vestigial code has been removed (ISeriesHost.GlobalSeriesIndexesInvalidated). Aside from adjusting for renamed/deleted functionality, all tests continue to pass as-is. &lt;/BLOCKQUOTE&gt;
&lt;P&gt;There are two pretty big wins from this change - so go back and re-read that paragraph if you weren't paying attention. We've prototyped &lt;STRONG&gt;both&lt;/STRONG&gt; an &lt;A href="http://msdn.microsoft.com/en-us/library/system.windows.controls.itemscontrol.aspx" mce_href="http://msdn.microsoft.com/en-us/library/system.windows.controls.itemscontrol.aspx"&gt;ItemsControl&lt;/A&gt;-based &lt;CODE&gt;PieSeries&lt;/CODE&gt; and a (WPF-only) &lt;A href="http://msdn.microsoft.com/en-us/library/system.windows.controls.viewport3d.aspx" mce_href="http://msdn.microsoft.com/en-us/library/system.windows.controls.viewport3d.aspx"&gt;Viewport3D&lt;/A&gt;-based &lt;CODE&gt;PieSeries&lt;/CODE&gt; and the results are very promising! Simply by changing our base &lt;CODE&gt;Series&lt;/CODE&gt; contract from a class to an interface, we give people with simple needs the ability to leverage the existing &lt;CODE&gt;ItemsControl&lt;/CODE&gt; framework and significantly decrease the amount of code they need to understand and interact with. (&lt;STRONG&gt;Aside&lt;/STRONG&gt;: There have even been suggestions to change our existing series over to use this model!) And the benefits for 3D are also compelling - though further off in the future due to a variety of open issues and unanswered questions. I'm not going to dwell on the implications of this change more right now, but there are obviously some cool possibilities that I'd love to see folks start to explore. (&lt;EM&gt;Hint, hint, friends of Charting...&lt;/EM&gt;) &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;Rename Charting's StylePalette to Palette (for clarity) AND change its type to IEnumerable&amp;lt;ResourceDictionary&amp;gt; (from IEnumerable&amp;lt;Style&amp;gt;) for a significant flexibility boost. Perform related renamings (many internal/private): IStyleDispenser-&amp;gt;IResourceDictionaryDispenser, StylePalette-&amp;gt;ResourceDictionaryCollection, StyleDispensedEventArgs-&amp;gt;ResourceDictionaryDispensedEventArgs, StyleDispenser-&amp;gt;ResourceDictionaryDispenser, StyleEnumerator-&amp;gt;ResourceDictionaryEnumerator. Modify all code, comments, tests, samples, themes, etc. accordingly. &lt;BR&gt;&lt;BR&gt;Most notably, this change gives us the ability to associate MULTIPLE things with a palette entry and enables designers to easily and flexibly customize things like LineSeries PolyLineStyle in the Palette. Additionally it enables the use of DynamicResource (currently only supported by the WPF platform) to let users customize their DataPointStyle *without* inadvertently losing the default/custom Palette colors. Due to merged ResourceDictionaries, this also enables the addition of arbitrary resources at the Palette level (like Brushes) which can be referenced by DataPoints, etc.. &lt;BR&gt;&lt;BR&gt;Also: Simplify default Background Brushes by removing ScaleTransform and TranslateTransform and replacing with RadialBrush properties, and more... &lt;/BLOCKQUOTE&gt;
&lt;P&gt;This is going to be the most painful change for existing users of Data Visualization - sorry! If you've ever customized a &lt;CODE&gt;StylePalette&lt;/CODE&gt;, your XAML is going to need to change. However, the opportunities this change opens up seem sufficiently compelling that we've decided to make it now (while we still have the freedom to do so). The good news is that the migration is really quite simple - and once you've seen it done once, you can mindlessly apply the change everywhere it's needed. &lt;/P&gt;
&lt;P&gt;To prove it, here's a sample of the "old" way from &lt;A href="http://blogs.msdn.com/delay/archive/2008/10/28/announcing-a-free-open-source-charting-solution-for-silverlight-silverlight-toolkit-released-today-at-pdc.aspx" mce_href="http://blogs.msdn.com/delay/archive/2008/10/28/announcing-a-free-open-source-charting-solution-for-silverlight-silverlight-toolkit-released-today-at-pdc.aspx"&gt;my original Charting Introduction post&lt;/A&gt;: &lt;/P&gt;&lt;PRE&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;chartingToolkit&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Chart&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Title&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Statistics (Custom Palette)"&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;chartingToolkit&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Chart.StylePalette&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;        &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;visualizationToolkit&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;StylePalette&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;            &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; TargetType&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Control"&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Setter&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Property&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Background"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Value&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Blue"/&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;            &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;            &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; TargetType&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Control"&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Setter&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Property&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Background"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Value&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Green"/&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;            &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;            &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; TargetType&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Control"&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Setter&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Property&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Background"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Value&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Red"/&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;            &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;        &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;visualizationToolkit&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;StylePalette&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;chartingToolkit&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Chart.StylePalette&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;    ...
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;chartingToolkit&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Chart&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;And here's that same XAML converted to the "new" way of doing things (I've highlighted the changes): &lt;/P&gt;&lt;PRE&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;chartingToolkit&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Chart&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Title&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Statistics (Custom Palette)"&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;chartingToolkit&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Chart.&lt;SPAN style="BACKGROUND-COLOR: yellow"&gt;Palette&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;        &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;visualizationToolkit&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;&lt;SPAN style="BACKGROUND-COLOR: yellow"&gt;ResourceDictionaryCollection&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;            &lt;/SPAN&gt;&lt;SPAN style="BACKGROUND-COLOR: yellow"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;ResourceDictionary&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Style &lt;/SPAN&gt;&lt;SPAN style="BACKGROUND-COLOR: yellow"&gt;&lt;SPAN style="COLOR: #ff0000"&gt;x&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt;Key&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="DataPointStyle"&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; TargetType&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Control"&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Setter&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Property&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Background"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Value&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Blue"/&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;            &lt;/SPAN&gt;&lt;SPAN style="BACKGROUND-COLOR: yellow"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;ResourceDictionary&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;            &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;ResourceDictionary&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; x&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt;Key&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="DataPointStyle"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; TargetType&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Control"&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Setter&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Property&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Background"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Value&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Green"/&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;            &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;ResourceDictionary&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;            &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;ResourceDictionary&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; x&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt;Key&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="DataPointStyle"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; TargetType&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Control"&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Setter&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Property&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Background"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Value&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Red"/&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;            &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;ResourceDictionary&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;        &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;visualizationToolkit&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;&lt;SPAN style="BACKGROUND-COLOR: yellow"&gt;ResourceDictionaryCollection&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;chartingToolkit&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Chart.&lt;SPAN style="BACKGROUND-COLOR: yellow"&gt;Palette&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;    ...
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;chartingToolkit&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Chart&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;Yes, the new syntax is a little bit longer, no doubt about that - but the ability to associate multiple resources with a single palette entry addresses some very tricky problems we've been avoiding till now. And the &lt;A href="http://msdn.microsoft.com/en-us/library/system.windows.dynamicresourceextension.aspx" mce_href="http://msdn.microsoft.com/en-us/library/system.windows.dynamicresourceextension.aspx"&gt;DynamicResource&lt;/A&gt; benefits for WPF address the single biggest complaint people have had with &lt;CODE&gt;StylePalette&lt;/CODE&gt;: &lt;EM&gt;Why should I have to redefine the entire color palette when all I want to do is provide a new template?&lt;/EM&gt; This is a really powerful shift, and something I'll probably spend more time showing off in a future blog post. &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;Update Series to look for "LegendItemStyle" in their ResourceDictionary for increased customizability. Add Owner property to LegendItem pointing to owning series to simplify LegendItem-based user scenarios. Add ActualDataPointStyle and ActualLegendItemStyle properties and use Bindings to automatically propagate changes to the right places. (Aside: This fixes a bug that was reported against the WPF Toolkit *as I was making this change*!) Move code so that PieSeries now has the DataPointStyle property like the other Series. Update LegendItem default Template to include standard TemplateBindings for Background/BorderBrush/BorderThickness for more friendly designer experience. &lt;/BLOCKQUOTE&gt;
&lt;P&gt;Hey, look, we're &lt;STRONG&gt;already&lt;/STRONG&gt; making use of the new &lt;CODE&gt;ResourceDictionaryCollection&lt;/CODE&gt;! &lt;NOBR&gt;:)&lt;/NOBR&gt; The other two big improvements here are the comprehensive use of bindings for the DataPointStyle property that fixes an issue a few customers have bumped into (it's confusing unless you know exactly what's going on) and the addition of &lt;CODE&gt;DataPointStyle&lt;/CODE&gt; to &lt;CODE&gt;PieSeries&lt;/CODE&gt; which is like the &lt;CODE&gt;DynamicResource&lt;/CODE&gt; change in that it should do a lot to simplify things on the WPF platform. &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;Move unnecessarily duplicated DependencyProperties IRangeAxis DependentRangeAxis and IAxis IndependentAxis from ColumnSeries and BarSeries into common base class ColumnBarBaseSeries. Move unnecessarily duplicated DependencyProperties IRangeAxis DependentRangeAxis and IAxis IndependentAxis from AreaSeries and LineSeries into common base class LineAreaBaseSeries. Same for methods OnApplyTemplate and UpdateDataPoint and half of UpdateShape. Also remove an unnecessary override from CategoryAxis. No functional impact. &lt;/BLOCKQUOTE&gt;
&lt;P&gt;Less code, same features, no functional impact - 'nuff said. &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A href="http://cesso.org/Samples/SilverlightWpfDataVisualization/SilverlightWpfDataVisualization.zip" mce_href="http://cesso.org/Samples/SilverlightWpfDataVisualization/SilverlightWpfDataVisualization.zip"&gt;[Please click here to download the complete SilverlightWpfDataVisualization solution (includes all source code and pre-compiled binaries for both platforms).]&lt;/A&gt; &lt;/STRONG&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Release Notes&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;When you add a project reference to the Data Visualization assembly on WPF, you also need to add a reference to &lt;CODE&gt;WPFToolkit.dll&lt;/CODE&gt; or you'll get weird runtime errors because the Visual State Manager (VSM) isn't available. &lt;/LI&gt;
&lt;LI&gt;The file structure of the ZIP archive remains the same (&lt;A href="http://blogs.msdn.com/delay/archive/2009/07/16/bringing-the-silverlight-toolkit-s-treemap-to-wpf-silverlight-wpf-data-visualization-development-release-0.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/07/16/bringing-the-silverlight-toolkit-s-treemap-to-wpf-silverlight-wpf-data-visualization-development-release-0.aspx"&gt;see my previous post for details&lt;/A&gt;). &lt;/LI&gt;
&lt;LI&gt;Design-time assemblies are not part of the Development Releases because I don't expect the target audience to need them and because they add additional complexity. &lt;/LI&gt;
&lt;LI&gt;I haven't updated my &lt;A href="http://blogs.msdn.com/delay/archive/2009/06/25/wpf-charting-it-s-official-june-2009-release-of-the-wpf-toolkit-is-now-available.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/06/25/wpf-charting-it-s-official-june-2009-release-of-the-wpf-toolkit-is-now-available.aspx"&gt;DataVisualizationDemos application&lt;/A&gt; for this unofficial release. &lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So there you have it: the second Silverlight/WPF Data Visualization Development Release in a nutshell. Though, in many ways, this is really the &lt;STRONG&gt;first&lt;/STRONG&gt; release because the previous release didn't showcase upcoming changes like this one does (it mainly set the stage for future releases). I said before that these Development Releases are an experiment - so please let me know if you find them useful or if you'd all rather just wait for an official release and find out what's changed then. I'm hopeful that early access to the new code will be helpful to our early adopters and that we'll be able to incorporate their feedback to deliver an even more compelling, more reliable official release. &lt;/P&gt;
&lt;P&gt;So this is me trying to do my part; the ball is in &lt;STRONG&gt;your&lt;/STRONG&gt; court now, Charting fans. &lt;EM&gt;So, what's it going to be then, eh?&lt;/EM&gt; &lt;/P&gt;&lt;/DIV&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9894842" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/delay/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/delay/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/delay/archive/tags/Silverlight+Toolkit/default.aspx">Silverlight Toolkit</category><category domain="http://blogs.msdn.com/delay/archive/tags/WPF+Toolkit/default.aspx">WPF Toolkit</category></item><item><title>Simple column labels you can create at home! [Re-Templating the Silverlight/WPF Data Visualization ColumnDataPoint to add annotations]</title><link>http://blogs.msdn.com/delay/archive/2009/07/27/simple-column-labels-you-can-create-at-home-re-templating-the-silverlight-wpf-data-visualization-columndatapoint-to-add-annotations.aspx</link><pubDate>Mon, 27 Jul 2009 20:59:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9850198</guid><dc:creator>Delay</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/delay/comments/9850198.aspx</comments><wfw:commentRss>http://blogs.msdn.com/delay/commentrss.aspx?PostID=9850198</wfw:commentRss><description>&lt;DIV class=delay&gt;
&lt;P&gt;A customer contacted me over the weekend asking how to add labels (also known as annotations) to a &lt;CODE&gt;ColumnSeries&lt;/CODE&gt;. My reply was that we don't support annotations in &lt;A href="http://blogs.msdn.com/delay/archive/2009/07/19/my-new-home-page-enhanced-updated-collection-of-great-silverlight-wpf-data-visualization-resources.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/07/19/my-new-home-page-enhanced-updated-collection-of-great-silverlight-wpf-data-visualization-resources.aspx"&gt;Silverlight/WPF Charting&lt;/A&gt; yet, but it's possible to create some pretty simple ones for limited scenarios just by editing the default &lt;CODE&gt;ColumnDataPoint&lt;/CODE&gt; &lt;CODE&gt;Template&lt;/CODE&gt;. And because it's so quick, I thought I'd write up a brief example on the bus! &lt;/P&gt;
&lt;BLOCKQUOTE&gt;Aside: For some more examples of basic &lt;CODE&gt;DataPoint&lt;/CODE&gt; &lt;CODE&gt;Template&lt;/CODE&gt; changes, please have a look at &lt;A href="http://blogs.msdn.com/delay/archive/2009/05/19/chart-tweaking-made-easy-how-to-make-four-simple-color-tooltip-changes-with-silverlight-wpf-charting.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/05/19/chart-tweaking-made-easy-how-to-make-four-simple-color-tooltip-changes-with-silverlight-wpf-charting.aspx"&gt;my earlier post on customizing ToolTips&lt;/A&gt;. &lt;/BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In this case, the customer wanted to add a label showing the column's value at the bottom of the column, just above its axis label. (This is a nice place to put labels because it makes it easy for viewers to associate the category with its value no matter how high each column is.) The obvious approach is to add a &lt;CODE&gt;TextBlock&lt;/CODE&gt; to the body of the default &lt;CODE&gt;Template&lt;/CODE&gt;, but the problem with that is that the text can get clipped or even disappear for small columns... So the &lt;STRONG&gt;trick&lt;/STRONG&gt; is to add a negative &lt;A href="http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.margin(VS.95).aspx" mce_href="http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.margin(VS.95).aspx"&gt;Margin&lt;/A&gt; to pull the text "outside" the normal clipping region. Fortune must have been smiling upon me, because when I tried this on Silverlight, it worked just like I wanted! &lt;NOBR&gt;:)&lt;/NOBR&gt; &lt;/P&gt;
&lt;BLOCKQUOTE&gt;Aside: My other idea was to use a &lt;CODE&gt;Canvas&lt;/CODE&gt; because it doesn't clip by default; maybe someone else will need to use that approach for their scenario. &lt;/BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here's how the resulting chart looks: &lt;/P&gt;&lt;IMG alt="Simple column annotations (on bottom)" src="http://blogs.msdn.com/blogfiles/delay/SimpleColumnAnnotations-Bottom.png" width=460 height=372 mce_src="http://blogs.msdn.com/blogfiles/delay/SimpleColumnAnnotations-Bottom.png"&gt; 
&lt;P&gt;The XAML's nothing special - aside from the negative &lt;CODE&gt;Margin&lt;/CODE&gt;, it's all standard stuff: &lt;/P&gt;&lt;PRE&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;charting&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Chart
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;   &lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Title&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Simple Column Annotations - Bottom"&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;charting&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;ColumnSeries
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;       &lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; DependentValuePath&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Value"
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;       &lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; IndependentValuePath&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Key"
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;       &lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; ItemsSource&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="{&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Binding&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;}"&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;        &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;charting&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;ColumnSeries.DataPointStyle&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;            &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; TargetType&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="charting:ColumnDataPoint"&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Setter&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Property&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Background"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Value&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Yellow"/&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Setter&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Property&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Template"&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Setter.Value&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                        &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;ControlTemplate&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; TargetType&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="charting:ColumnDataPoint"&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                            &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Grid&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                                &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Rectangle
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;                                   &lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Fill&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="{&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;TemplateBinding&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Background&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;}"
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;                                   &lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Stroke&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Black"/&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                                &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Grid
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;                                   &lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Background&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="#aaffffff"
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;                                    &lt;/SPAN&gt;&lt;SPAN style="BACKGROUND-COLOR: yellow; COLOR: #ff0000"&gt;Margin&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="0 -20 0 0"
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;                                   &lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; HorizontalAlignment&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Center"
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;                                   &lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; VerticalAlignment&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Bottom"&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                                    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;TextBlock
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;                                       &lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Text&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="{&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;TemplateBinding&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; FormattedDependentValue&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;}"
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;                                       &lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; FontWeight&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Bold"
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;                                       &lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Margin&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="2"/&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                                &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Grid&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                            &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Grid&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                        &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;ControlTemplate&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Setter.Value&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;                &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Setter&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;            &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Style&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;        &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;charting&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;ColumnSeries.DataPointStyle&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;charting&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;ColumnSeries&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;charting&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Chart&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Just for fun, I thought I'd try the same trick to put the annotations on &lt;STRONG&gt;top&lt;/STRONG&gt; of the columns, too. This is the more traditional location - and that also works pretty nicely: &lt;/P&gt;&lt;IMG alt="Simple column annotations (on top)" src="http://blogs.msdn.com/blogfiles/delay/SimpleColumnAnnotations-Top.png" width=460 height=442 mce_src="http://blogs.msdn.com/blogfiles/delay/SimpleColumnAnnotations-Top.png"&gt; 
&lt;P&gt;The only change from the previous XAML is switching the &lt;A href="http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.verticalalignment(VS.95).aspx" mce_href="http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.verticalalignment(VS.95).aspx"&gt;VerticalAlignment&lt;/A&gt; to &lt;CODE&gt;Top&lt;/CODE&gt;: &lt;/P&gt;&lt;PRE&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Grid
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;   &lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Background&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="#aaffffff"
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;   &lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Margin&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="0 -20 0 0"
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;   &lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; HorizontalAlignment&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Center"
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;   &lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; VerticalAlignment&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="&lt;SPAN style="BACKGROUND-COLOR: yellow"&gt;Top&lt;/SPAN&gt;"&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;TextBlock
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;       &lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Text&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="{&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;TemplateBinding&lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; FormattedDependentValue&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;}"
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;       &lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; FontWeight&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Bold"
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;       &lt;/SPAN&gt;&lt;SPAN style="COLOR: #ff0000"&gt; Margin&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="2"/&amp;gt;
&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Grid&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And there you have it - a simple technique for simple column annotations! &lt;/P&gt;
&lt;BLOCKQUOTE&gt;Aside: Of course, these aren't "real" annotations - they'll eventually break in more complicated scenarios. But hey, if you've got simple needs, here's a simple solution for you. &lt;NOBR&gt;:)&lt;/NOBR&gt; &lt;/BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;PS - For people playing along at home, here's how I created the data for the samples: &lt;/P&gt;&lt;PRE&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;public&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt; MainPage()
{
    InitializeComponent();
    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;var&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt; items = &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;new&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;List&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;KeyValuePair&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;string&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;, &lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;double&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;gt;&amp;gt;();
    items.Add(&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;new&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;KeyValuePair&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;string&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;,&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;double&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;gt;(&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;"Apples"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;, 0));
    items.Add(&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;new&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;KeyValuePair&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;string&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;,&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;double&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;gt;(&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;"Oranges"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;, 0.1));
    items.Add(&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;new&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;KeyValuePair&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;string&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;,&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;double&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;gt;(&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;"Pears"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;, 1));
    DataContext = items;
}
&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9850198" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/delay/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/delay/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/delay/archive/tags/Silverlight+Toolkit/default.aspx">Silverlight Toolkit</category><category domain="http://blogs.msdn.com/delay/archive/tags/WPF+Toolkit/default.aspx">WPF Toolkit</category></item><item><title>My new home page, enhanced [Updated collection of great Silverlight/WPF Data Visualization resources!]</title><link>http://blogs.msdn.com/delay/archive/2009/07/19/my-new-home-page-enhanced-updated-collection-of-great-silverlight-wpf-data-visualization-resources.aspx</link><pubDate>Mon, 20 Jul 2009 09:01:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9840961</guid><dc:creator>Delay</dc:creator><slash:comments>10</slash:comments><comments>http://blogs.msdn.com/delay/comments/9840961.aspx</comments><wfw:commentRss>http://blogs.msdn.com/delay/commentrss.aspx?PostID=9840961</wfw:commentRss><description>&lt;DIV class=delay&gt;
&lt;P&gt;In the time since posting &lt;A href="http://blogs.msdn.com/delay/archive/2009/04/24/my-new-home-page-extended-updated-collection-of-great-silverlight-and-wpf-charting-resources.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/04/24/my-new-home-page-extended-updated-collection-of-great-silverlight-and-wpf-charting-resources.aspx"&gt;my last collection of Silverlight/WPF Charting links&lt;/A&gt;, there's been some great activity! Of particular significance, the &lt;A href="http://wpf.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=29117" mce_href="http://wpf.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=29117"&gt;June 2009 WPF Toolkit&lt;/A&gt; includes the same Data Visualization goodness that was introduced for Silverlight and the &lt;A href="http://silverlight.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24246" mce_href="http://silverlight.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24246"&gt;July 2009 release of the Silverlight Toolkit&lt;/A&gt; added a TreeMap control. Without further ado, here are the latest links (FYI: previously published links are gray): &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Overviews (&lt;A href="http://support.microsoft.com/default.aspx?scid=gp;en-us;WebCastLevels&amp;amp;sd=gn" mce_href="http://support.microsoft.com/default.aspx?scid=gp;en-us;WebCastLevels&amp;amp;sd=gn"&gt;100 level&lt;/A&gt;) &lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://timheuer.com/blog/archive/2008/10/28/silverlight-toolkit-released-with-charting-databinding.aspx" mce_href="http://timheuer.com/blog/archive/2008/10/28/silverlight-toolkit-released-with-charting-databinding.aspx"&gt;Silverlight Toolkit Released – More controls!&lt;/A&gt; - &lt;STRONG&gt;Tim Heuer&lt;/STRONG&gt;'s &lt;EM&gt;during the PDC keynote&lt;/EM&gt; overview set the stage for good Charting content. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://community.irritatedvowel.com/blogs/pete_browns_blog/archive/2008/10/28/Silverlight-Toolkit-_2800_Silverlight-2-Control-Pack_2900_-_2D00_-Charting.aspx" mce_href="http://community.irritatedvowel.com/blogs/pete_browns_blog/archive/2008/10/28/Silverlight-Toolkit-_2800_Silverlight-2-Control-Pack_2900_-_2D00_-Charting.aspx"&gt;Silverlight Toolkit (Silverlight 2 Control Pack) - Charting &lt;/A&gt;- &lt;STRONG&gt;Pete Brown&lt;/STRONG&gt; followed up minutes later with another good overview. (Party trivia: The styles seen in his blog offer a rare glimpse of the pre-release Charting styles.) &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://cornucopia30.blogspot.com/2008/10/silverlight-2-introducing-chart-control.html" mce_href="http://cornucopia30.blogspot.com/2008/10/silverlight-2-introducing-chart-control.html"&gt;Silverlight 2 - Introducing the Chart Control&lt;/A&gt; - &lt;STRONG&gt;Chad Campbell&lt;/STRONG&gt; was also ready with a good "zero-day" overview and code samples. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://www.hanselman.com/blog/TheWeeklySourceCode36PDCBabySmashAndSilverlightCharting.aspx" mce_href="http://www.hanselman.com/blog/TheWeeklySourceCode36PDCBabySmashAndSilverlightCharting.aspx"&gt;The Weekly Source Code 36 - PDC, BabySmash and Silverlight Charting&lt;/A&gt; - &lt;STRONG&gt;Scott Hanselman&lt;/STRONG&gt;'s post includes a &lt;A href="http://www.babysmash.com/" mce_href="http://www.babysmash.com/"&gt;BabySmash&lt;/A&gt; tie-in and a smidge of flattery. :) &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://silverlight.net/blogs/jesseliberty/archive/2008/11/24/graphing-silverlight-toolkit.aspx" mce_href="http://silverlight.net/blogs/jesseliberty/archive/2008/11/24/graphing-silverlight-toolkit.aspx"&gt;Graphing – Silverlight Toolkit&lt;/A&gt; - &lt;STRONG&gt;Jesse Liberty&lt;/STRONG&gt; introduces Charting and covers some of the basics. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://silverlight.net/blogs/jesseliberty/archive/2008/12/17/bubble-chart.aspx" mce_href="http://silverlight.net/blogs/jesseliberty/archive/2008/12/17/bubble-chart.aspx"&gt;Bubble chart&lt;/A&gt; - &lt;STRONG&gt;Jesse Liberty&lt;/STRONG&gt; introduces the BubbleSeries class and describes some interesting use-cases. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://www.sparklingclient.com/the-bubble-chart-in-the-silverlight-toolkit/" mce_href="http://www.sparklingclient.com/the-bubble-chart-in-the-silverlight-toolkit/"&gt;The Bubble Chart in the Silverlight Toolkit&lt;/A&gt; - &lt;STRONG&gt;Sparkling Client&lt;/STRONG&gt; interviews &lt;STRONG&gt;Jesse Liberty&lt;/STRONG&gt; in this podcast discussing the BubbleSeries. &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://jeffblankenburg.com/2009/07/day-15-silverlight-charting.aspx" mce_href="http://jeffblankenburg.com/2009/07/day-15-silverlight-charting.aspx"&gt;Day #15: Silverlight Charting&lt;/A&gt; - &lt;STRONG&gt;Jeff Blankenburg&lt;/STRONG&gt; gives a nice overview of Charting and demonstrates how easy it is to switch series types along the way. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Scenarios (200 level) &lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://www.sitechno.com/Blog/ZoomingIntoAChart.aspx" mce_href="http://www.sitechno.com/Blog/ZoomingIntoAChart.aspx"&gt;Zooming into a chart&lt;/A&gt; - &lt;STRONG&gt;Ruurd Boeke&lt;/STRONG&gt; did the "zooming" scenario sample for the &lt;A href="http://silverlight.net/samples/sl2/toolkitcontrolsamples/run/default.html" mce_href="http://silverlight.net/samples/sl2/toolkitcontrolsamples/run/default.html"&gt;live Charting samples page&lt;/A&gt; - here's how he did it. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://cornucopia30.blogspot.com/2008/10/silverlight-2-getting-started-with.html" mce_href="http://cornucopia30.blogspot.com/2008/10/silverlight-2-getting-started-with.html"&gt;Silverlight 2 - Getting Started with the Chart Control&lt;/A&gt; - &lt;STRONG&gt;Chad Campbell &lt;/STRONG&gt;again - a thorough walkthrough of creating your first chart. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://www.eggheadcafe.com/tutorials/aspnet/5b0c5717-2817-47a5-bd20-1bbdc0ab1240/silverlight-2-custom-stoc.aspx" mce_href="http://www.eggheadcafe.com/tutorials/aspnet/5b0c5717-2817-47a5-bd20-1bbdc0ab1240/silverlight-2-custom-stoc.aspx"&gt;Silverlight 2 Custom Stock Charts With Silverlight Toolkit&lt;/A&gt; - &lt;STRONG&gt;Peter Bromberg&lt;/STRONG&gt; with his own walkthrough - creating a stock chart with plenty of code. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://community.irritatedvowel.com/blogs/pete_browns_blog/archive/2008/10/31/Styling-the-Charts-in-the-Silverlight-Toolkit.aspx" mce_href="http://community.irritatedvowel.com/blogs/pete_browns_blog/archive/2008/10/31/Styling-the-Charts-in-the-Silverlight-Toolkit.aspx"&gt;Styling the Charts in the Silverlight Toolkit&lt;/A&gt; - &lt;STRONG&gt;Pete Brown&lt;/STRONG&gt; again - this time with a good styling overview for designers. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blogs.msdn.com/mehdis/archive/2008/11/11/designer-s-guide-to-styling-silverlight-toolkit-charting-controls.aspx" mce_href="http://blogs.msdn.com/mehdis/archive/2008/11/11/designer-s-guide-to-styling-silverlight-toolkit-charting-controls.aspx"&gt;Designer’s Guide to Styling Silverlight Toolkit Charting Controls&lt;/A&gt; - &lt;STRONG&gt;Mehdi Slaoui Andaloussi&lt;/STRONG&gt; goes over the top with a &lt;A href="http://en.wikipedia.org/wiki/Soup_to_nuts" mce_href="http://en.wikipedia.org/wiki/Soup_to_nuts"&gt;"soup to nuts"&lt;/A&gt; designer-oriented guide to styling &lt;EM&gt;everything&lt;/EM&gt;. It probably helps that Mehdi works on my team and authored the shipping styles for Charting as well. :) &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://community.irritatedvowel.com/blogs/pete_browns_blog/archive/2008/12/04/Pie-Chart-Styling-in-the-Silverlight-Toolkit-_2D00_-Cross_2D00_Slice-Gradients.aspx" mce_href="http://community.irritatedvowel.com/blogs/pete_browns_blog/archive/2008/12/04/Pie-Chart-Styling-in-the-Silverlight-Toolkit-_2D00_-Cross_2D00_Slice-Gradients.aspx"&gt;Pie Chart Styling in the Silverlight Toolkit - Cross-Slice Gradients&lt;/A&gt; - &lt;STRONG&gt;Pete Brown&lt;/STRONG&gt; takes a proof-of-concept for holistic pie chart styling and uses it to &lt;EM&gt;great&lt;/EM&gt; effect. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://silverlight.net/blogs/jesseliberty/archive/2008/12/18/bubbles-1-chart-three-axes.aspx" mce_href="http://silverlight.net/blogs/jesseliberty/archive/2008/12/18/bubbles-1-chart-three-axes.aspx"&gt;Bubbles – 1 Chart – three Axes&lt;/A&gt; - &lt;STRONG&gt;Jesse Liberty&lt;/STRONG&gt; takes advantage of BubbleSeries to visualize historical data in an interesting way. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://kevindockx.blogspot.com/2008/12/customizing-labels-on-axis-of.html" mce_href="http://kevindockx.blogspot.com/2008/12/customizing-labels-on-axis-of.html"&gt;Customizing the Labels on an Axis of the Silverlight Toolkit Chart&lt;/A&gt; - &lt;STRONG&gt;Kevin Dockx&lt;/STRONG&gt; calls out the AxisLabelStyle property which allows designers to easily customize the labels of an axis. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://community.irritatedvowel.com/blogs/pete_browns_blog/archive/2009/01/09/Dazzling-Silverlight-Toolkit-Pie-Charts-with-Overlays.aspx" mce_href="http://community.irritatedvowel.com/blogs/pete_browns_blog/archive/2009/01/09/Dazzling-Silverlight-Toolkit-Pie-Charts-with-Overlays.aspx"&gt;Dazzling Silverlight Toolkit Pie Charts with Overlays&lt;/A&gt; - &lt;STRONG&gt;Pete Brown&lt;/STRONG&gt; continues working with pie charts and creates a further level of polish by adding some shiny overlays that make the visuals "pop". &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://www.jeff.wilcox.name/2008/12/10/charting-rich-tooltips/" mce_href="http://www.jeff.wilcox.name/2008/12/10/charting-rich-tooltips/"&gt;Silverlight Charting: Creating rich data point tooltips&lt;/A&gt; - &lt;STRONG&gt;Jeff Wilcox&lt;/STRONG&gt; shows how he customized the ToolTips of a LineSeries to show a wealth of information relevant information in a very user-friendly manner. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://silverlight.net/blogs/jesseliberty/archive/2009/01/10/pie-chart-and-column-chart-videos-post.aspx" mce_href="http://silverlight.net/blogs/jesseliberty/archive/2009/01/10/pie-chart-and-column-chart-videos-post.aspx"&gt;Pie Chart and Column Chart videos post&lt;/A&gt; - &lt;STRONG&gt;Jesse Liberty&lt;/STRONG&gt; demonstrates the use of PieSeries and ColumnSeries in a set of "How Do I" videos. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://expression.microsoft.com/en-us/dd433476.aspx" mce_href="http://expression.microsoft.com/en-us/dd433476.aspx"&gt;Styling Charts with the Silverlight Toolkit&lt;/A&gt; - &lt;STRONG&gt;Pete Brown&lt;/STRONG&gt;'s comprehensive &lt;A href="http://expression.microsoft.com/en-us/default.aspx" mce_href="http://expression.microsoft.com/en-us/default.aspx"&gt;Expression Newsletter&lt;/A&gt; article provides some of the best information available anywhere about Charting styling! &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://www.codeproject.com/KB/WPF/WPFSLChart.aspx" mce_href="http://www.codeproject.com/KB/WPF/WPFSLChart.aspx"&gt;Styling a Silverlight Chart&lt;/A&gt; - &lt;STRONG&gt;Rudi Grobler&lt;/STRONG&gt; shows how to re-style a LineSeries to look just like the &lt;A href="http://www.google.com/analytics/" mce_href="http://www.google.com/analytics/"&gt;Google Analytics&lt;/A&gt; charts. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://leeontech.wordpress.com/2009/02/25/linechart-with-markers/" mce_href="http://leeontech.wordpress.com/2009/02/25/linechart-with-markers/"&gt;LineChart with Markers&lt;/A&gt; - &lt;STRONG&gt;Lee&lt;/STRONG&gt; demonstrates one way of adding markers (also known as annotations or cursors) to a Chart. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://leeontech.wordpress.com/2009/03/13/showing-and-hiding-series-in-chart/" mce_href="http://leeontech.wordpress.com/2009/03/13/showing-and-hiding-series-in-chart/"&gt;Showing and Hiding Series in chart&lt;/A&gt; - &lt;STRONG&gt;Lee&lt;/STRONG&gt; neatly solves the problem of hiding (and showing) individual Series by clicking on their entries in the Legend. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://geekswithblogs.net/tkokke/archive/2009/04/01/creating-binding-and-styling-a-bubble-chart.aspx" mce_href="http://geekswithblogs.net/tkokke/archive/2009/04/01/creating-binding-and-styling-a-bubble-chart.aspx"&gt;Creating, Binding and Styling a Bubble Chart&lt;/A&gt; - &lt;STRONG&gt;Timmy Kokke&lt;/STRONG&gt; shows off how some of the new Blend 3 features can be used to completely customize the appearance of a BubbleSeries without writing any code at all. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://community.irritatedvowel.com/blogs/pete_browns_blog/archive/2009/04/09/Custom-Bar-Charts-with-the-Silverlight-Toolkit.aspx" mce_href="http://community.irritatedvowel.com/blogs/pete_browns_blog/archive/2009/04/09/Custom-Bar-Charts-with-the-Silverlight-Toolkit.aspx"&gt;Custom Bar Charts with the Silverlight Toolkit&lt;/A&gt; - &lt;STRONG&gt;Pete Brown&lt;/STRONG&gt; discusses how he went about dramatically customizing the appearance of two Chart types to create a very modern, polished look for a demo app. &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.eggheadcafe.com/tutorials/aspnet/2d803e3c-081f-437c-8ee6-8584c1f63683/silverlight-3-displaying.aspx" mce_href="http://www.eggheadcafe.com/tutorials/aspnet/2d803e3c-081f-437c-8ee6-8584c1f63683/silverlight-3-displaying.aspx"&gt;Silverlight 3: Displaying and Charting with TwitterCounter&lt;/A&gt; - &lt;STRONG&gt;Peter Bromberg&lt;/STRONG&gt; shows off an application to display Twitter statistics along with a chart of followers over time. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Internals (300 level) &lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://www.scottlogic.co.uk/blog/wpf/2009/02/adding-a-location-crosshair-to-silverlight-charts/" mce_href="http://www.scottlogic.co.uk/blog/wpf/2009/02/adding-a-location-crosshair-to-silverlight-charts/"&gt;Adding a Location Crosshair to Silverlight Charts&lt;/A&gt; - &lt;STRONG&gt;Colin Eberhardt&lt;/STRONG&gt; shows how to add crosshairs on top of a Chart to display the coordinates of the mouse pointer. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://www.scottlogic.co.uk/blog/wpf/2009/03/adding-a-location-crosshair-to-silverlight-charts-again/" mce_href="http://www.scottlogic.co.uk/blog/wpf/2009/03/adding-a-location-crosshair-to-silverlight-charts-again/"&gt;Adding a Location Crosshair to Silverlight charts (again!)&lt;/A&gt; - &lt;STRONG&gt;Colin Eberhardt&lt;/STRONG&gt; updates his crosshairs post to accommodate changes in the March 09 release. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://www.codeproject.com/KB/silverlight/SLTCandlestickChart2.aspx" mce_href="http://www.codeproject.com/KB/silverlight/SLTCandlestickChart2.aspx"&gt;How to create stock charts using the Silverlight Toolkit&lt;/A&gt; - &lt;STRONG&gt;Rudi Grobler&lt;/STRONG&gt; shows how to create a custom Series type that's perfect for stock charts (open/high/low/close). &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://jmorrill.hjtcentral.com/Home/tabid/428/EntryId/351/Silverlight-Charts-Binding-multiple-Series.aspx" mce_href="http://jmorrill.hjtcentral.com/Home/tabid/428/EntryId/351/Silverlight-Charts-Binding-multiple-Series.aspx"&gt;Silverlight Charts: Binding multiple Series&lt;/A&gt; - &lt;STRONG&gt;Jeremiah Morrill&lt;/STRONG&gt; shows off an attached behavior that enables binding a Chart to a "collection of collections" to create an arbitrary number of series automatically. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://leeontech.wordpress.com/2009/03/02/interacting-with-charts/" mce_href="http://leeontech.wordpress.com/2009/03/02/interacting-with-charts/"&gt;Interacting with Charts&lt;/A&gt; - &lt;STRONG&gt;Lee&lt;/STRONG&gt; implements a nice interactive range selection behavior to create a friendly "zoom" feature for controlling the Axis range. &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://leeontech.wordpress.com/2009/05/27/interacting-with-charts-2/" mce_href="http://leeontech.wordpress.com/2009/05/27/interacting-with-charts-2/"&gt;Interacting with charts-2&lt;/A&gt; - &lt;STRONG&gt;Lee&lt;/STRONG&gt; shows off a proof-of-concept implementation to add an overlay for the plot area with grippers that enable interactive zooming on an axis. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Team Member posts (Partner level) &lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://themechanicalbride.blogspot.com/2008/10/building-observable-model-in.html" mce_href="http://themechanicalbride.blogspot.com/2008/10/building-observable-model-in.html"&gt;Building an Observable Model in Silverlight&lt;/A&gt; - &lt;STRONG&gt;Jafar Husain&lt;/STRONG&gt; gives some deep, technical detail about the observable model that Charting uses to enable its rich dynamic data support. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://themechanicalbride.blogspot.com/2009/03/writing-your-own-silverlight-chart.html" mce_href="http://themechanicalbride.blogspot.com/2009/03/writing-your-own-silverlight-chart.html"&gt;Writing Your Own Silverlight Chart Series (Part 1): Making Designers Happy&lt;/A&gt; - &lt;STRONG&gt;Jafar Husain&lt;/STRONG&gt; provides an overview of what it takes to create a new Series type and some scaffolding for an &lt;A href="http://en.wikipedia.org/wiki/OHLC" mce_href="http://en.wikipedia.org/wiki/OHLC"&gt;OHLC&lt;/A&gt; Series. &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://themechanicalbride.blogspot.com/2009/03/writing-your-own-silverlight-chart_25.html" mce_href="http://themechanicalbride.blogspot.com/2009/03/writing-your-own-silverlight-chart_25.html"&gt;Writing Your Own Silverlight Chart Series (Part 2): Implementing the Series&lt;/A&gt; - &lt;STRONG&gt;Jafar Husain&lt;/STRONG&gt; explains all that it takes to completely implement a custom chart type using only the public interfaces! &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/marlat/archive/2009/07/10/treemap-control-comes-to-silverlight-toolkit.aspx" mce_href="http://blogs.msdn.com/marlat/archive/2009/07/10/treemap-control-comes-to-silverlight-toolkit.aspx"&gt;TreeMap control is coming to Silverlight Toolkit&lt;/A&gt; - &lt;STRONG&gt;Marek Latuskiewicz&lt;/STRONG&gt; introduces the new TreeMap control, explains what Interpolators are, and shows how they work. &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/gpde/pages/treemap-released-in-silverlight-toolkit.aspx" mce_href="http://blogs.msdn.com/gpde/pages/treemap-released-in-silverlight-toolkit.aspx"&gt;Treemap released in Silverlight Toolkit &lt;/A&gt;- &lt;STRONG&gt;Gareth Bradshaw&lt;/STRONG&gt; gives a great TreeMap overview that touches on all the common scenarios. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;My posts (Ego level) &lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2008/10/28/announcing-a-free-open-source-charting-solution-for-silverlight-silverlight-toolkit-released-today-at-pdc.aspx" mce_href="http://blogs.msdn.com/delay/archive/2008/10/28/announcing-a-free-open-source-charting-solution-for-silverlight-silverlight-toolkit-released-today-at-pdc.aspx"&gt;Announcing a free, open source Charting solution for Silverlight [Silverlight Toolkit released today at PDC!]&lt;/A&gt; &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2008/10/29/click-your-way-to-great-silverlight-charts-live-chartbuilder-sample-and-source-code.aspx" mce_href="http://blogs.msdn.com/delay/archive/2008/10/29/click-your-way-to-great-silverlight-charts-live-chartbuilder-sample-and-source-code.aspx"&gt;Click your way to great Silverlight charts [Live ChartBuilder sample and source code!]&lt;/A&gt; &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2008/11/06/improving-chartbuilder-s-cultural-sensitivity-chartbuilder-app-source-updated.aspx" mce_href="http://blogs.msdn.com/delay/archive/2008/11/06/improving-chartbuilder-s-cultural-sensitivity-chartbuilder-app-source-updated.aspx"&gt;Improving ChartBuilder's cultural sensitivity [ChartBuilder app/source updated!]&lt;/A&gt; &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2008/12/09/silverlight-charting-gets-a-host-of-improvements-silverlight-toolkit-december-08-release-now-available.aspx" mce_href="http://blogs.msdn.com/delay/archive/2008/12/09/silverlight-charting-gets-a-host-of-improvements-silverlight-toolkit-december-08-release-now-available.aspx"&gt;Silverlight Charting gets a host of improvements [Silverlight Toolkit December 08 release now available!]&lt;/A&gt; &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2008/12/10/great-silverlight-charts-are-still-just-a-click-away-chartbuilder-sample-and-source-code-updated-for-charting-s-december-08-release.aspx" mce_href="http://blogs.msdn.com/delay/archive/2008/12/10/great-silverlight-charts-are-still-just-a-click-away-chartbuilder-sample-and-source-code-updated-for-charting-s-december-08-release.aspx"&gt;Great Silverlight charts are still just a click away [ChartBuilder sample and source code updated for Charting's December 08 release]&lt;/A&gt; &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2008/12/30/yummier-pies-a-technique-for-more-flexible-gradient-styling-of-silverlight-toolkit-pie-charts.aspx" mce_href="http://blogs.msdn.com/delay/archive/2008/12/30/yummier-pies-a-technique-for-more-flexible-gradient-styling-of-silverlight-toolkit-pie-charts.aspx"&gt;Yummier pies! [A technique for more flexible gradient styling of Silverlight Toolkit pie charts]&lt;/A&gt; &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2009/02/04/columns-of-a-different-color-customizing-the-appearance-of-silverlight-charts-with-re-templating-and-mvvm.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/02/04/columns-of-a-different-color-customizing-the-appearance-of-silverlight-charts-with-re-templating-and-mvvm.aspx"&gt;Columns of a different color [Customizing the appearance of Silverlight charts with re-templating and MVVM]&lt;/A&gt; &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2009/03/19/silverlight-charting-is-faster-and-better-than-ever-silverlight-toolkit-march-09-release-now-available.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/03/19/silverlight-charting-is-faster-and-better-than-ever-silverlight-toolkit-march-09-release-now-available.aspx"&gt;Silverlight Charting is faster and better than ever [Silverlight Toolkit March 09 release now available!]&lt;/A&gt; &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2009/03/20/silverlight-charting-remains-just-a-click-away-and-runs-on-wpf-too-chartbuilder-sample-and-source-code-updated-for-charting-s-march-09-release.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/03/20/silverlight-charting-remains-just-a-click-away-and-runs-on-wpf-too-chartbuilder-sample-and-source-code-updated-for-charting-s-march-09-release.aspx"&gt;Silverlight Charting remains just a click away - and runs on WPF, too!! [ChartBuilder sample and source code updated for Charting's March 09 release]&lt;/A&gt; &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2009/03/25/supporting-the-unsupported-two-fixes-for-the-unofficial-wpf-charting-assembly.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/03/25/supporting-the-unsupported-two-fixes-for-the-unofficial-wpf-charting-assembly.aspx"&gt;Supporting the unsupported [Two fixes for the unofficial WPF Charting assembly!]&lt;/A&gt; &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2009/03/26/if-they-can-build-it-they-will-come-enabling-anyone-to-compile-wpf-charting-from-the-silverlight-charting-sources.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/03/26/if-they-can-build-it-they-will-come-enabling-anyone-to-compile-wpf-charting-from-the-silverlight-charting-sources.aspx"&gt;If they can build it, they will come... [Enabling anyone to compile WPF Charting from the Silverlight Charting sources!]&lt;/A&gt; &lt;/LI&gt;
&lt;LI style="COLOR: gray"&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2009/04/22/another-round-of-un-support-quick-fix-for-the-unofficial-wpf-charting-assembly.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/04/22/another-round-of-un-support-quick-fix-for-the-unofficial-wpf-charting-assembly.aspx"&gt;Another round of (un)support [Quick fix for the unofficial WPF Charting assembly!]&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2009/05/12/pineapple-upside-down-chart-how-to-invert-the-axis-of-a-chart-for-smaller-is-better-scenarios.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/05/12/pineapple-upside-down-chart-how-to-invert-the-axis-of-a-chart-for-smaller-is-better-scenarios.aspx"&gt;Pineapple upside-down chart [How to: Invert the axis of a chart for "smaller is better" scenarios]&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2009/05/19/chart-tweaking-made-easy-how-to-make-four-simple-color-tooltip-changes-with-silverlight-wpf-charting.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/05/19/chart-tweaking-made-easy-how-to-make-four-simple-color-tooltip-changes-with-silverlight-wpf-charting.aspx"&gt;Chart tweaking made easy [How to: Make four simple color/ToolTip changes with Silverlight/WPF Charting]&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2009/06/15/peanut-butter-jelly-time-how-to-create-a-pleasing-visual-effect-with-silverlight-wpf-charting.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/06/15/peanut-butter-jelly-time-how-to-create-a-pleasing-visual-effect-with-silverlight-wpf-charting.aspx"&gt;Peanut butter jelly time [How to: Create a pleasing visual effect with Silverlight/WPF Charting]&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2009/06/25/wpf-charting-it-s-official-june-2009-release-of-the-wpf-toolkit-is-now-available.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/06/25/wpf-charting-it-s-official-june-2009-release-of-the-wpf-toolkit-is-now-available.aspx"&gt;WPF Charting: It's official! [June 2009 release of the WPF Toolkit is now available!]&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2009/07/10/silverlight-charting-gets-an-update-and-a-treemap-silverlight-toolkit-july-2009-release-now-available.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/07/10/silverlight-charting-gets-an-update-and-a-treemap-silverlight-toolkit-july-2009-release-now-available.aspx"&gt;Silverlight Charting gets an update - and a TreeMap! [Silverlight Toolkit July 2009 release now available!]&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/delay/archive/2009/07/16/bringing-the-silverlight-toolkit-s-treemap-to-wpf-silverlight-wpf-data-visualization-development-release-0.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/07/16/bringing-the-silverlight-toolkit-s-treemap-to-wpf-silverlight-wpf-data-visualization-development-release-0.aspx"&gt;Bringing the Silverlight Toolkit's TreeMap to WPF [Silverlight/WPF Data Visualization Development Release 0]&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Many, many thanks to everyone who's spent time helping others learn how to use Silverlight/WPF Data Visualization! &lt;/P&gt;
&lt;P&gt;PS - If I've missed any good resources, please leave a comment with a link - I'm always happy to find more good stuff! &lt;NOBR&gt;:)&lt;/NOBR&gt; &lt;/P&gt;&lt;/DIV&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9840961" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/delay/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/delay/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/delay/archive/tags/Silverlight+Toolkit/default.aspx">Silverlight Toolkit</category><category domain="http://blogs.msdn.com/delay/archive/tags/WPF+Toolkit/default.aspx">WPF Toolkit</category></item><item><title>Bringing the Silverlight Toolkit's TreeMap to WPF [Silverlight/WPF Data Visualization Development Release 0]</title><link>http://blogs.msdn.com/delay/archive/2009/07/16/bringing-the-silverlight-toolkit-s-treemap-to-wpf-silverlight-wpf-data-visualization-development-release-0.aspx</link><pubDate>Fri, 17 Jul 2009 01:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9836185</guid><dc:creator>Delay</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/delay/comments/9836185.aspx</comments><wfw:commentRss>http://blogs.msdn.com/delay/commentrss.aspx?PostID=9836185</wfw:commentRss><description>&lt;DIV class=delay&gt;
&lt;P&gt;Now that Data Visualization is part of the &lt;A href="http://silverlight.codeplex.com/" mce_href="http://silverlight.codeplex.com/"&gt;Silverlight Toolkit&lt;/A&gt; &lt;STRONG&gt;and&lt;/STRONG&gt; the &lt;A href="http://wpf.codeplex.com/" mce_href="http://wpf.codeplex.com/"&gt;WPF Toolkit&lt;/A&gt;, it has an official release vehicle for &lt;STRONG&gt;both&lt;/STRONG&gt; platforms of interest. This is great because it means that any customers who need to be running signed bits from an official release have a place to get what they need. Of course, because the two Toolkits are not on the same ship schedule, there will probably always be a delta between them: some features or fixes that are present for one platform but not the other. Fortunately, the release cadence for the Toolkits is pretty short (on the order of months), so it won't take long for features to make their way into both releases. &lt;/P&gt;
&lt;P&gt;But for folks who always want to be running the latest-and-greatest stuff, that wait can feel like an eternity... &lt;NOBR&gt;:)&lt;/NOBR&gt; The good news is that both Toolkits are &lt;A href="http://www.microsoft.com/opensource/licenses.mspx#Ms-PL" mce_href="http://www.microsoft.com/opensource/licenses.mspx#Ms-PL"&gt;Ms-Pl open source&lt;/A&gt;, so anyone can migrate code between the two. (And, in fact, I made some small tweaks recently to make that even easier!) But why should everyone have to reinvent the wheel? Wouldn't it be better if &lt;STRONG&gt;one&lt;/STRONG&gt; person simplified the process and shared the results with &lt;STRONG&gt;everybody&lt;/STRONG&gt;? Yeah, I thought so too... &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Announcing &lt;STRONG&gt;Silverlight/WPF Data Visualization Development Release 0&lt;/STRONG&gt;! &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The Silverlight/WPF Data Visualization Development Release is a side project of mine to make it easier for Silverlight and WPF customers to get their hands on the latest Data Visualization code for &lt;STRONG&gt;both&lt;/STRONG&gt; platforms. From time to time, I plan to release a single, comprehensive ZIP file with the complete Data Visualization source code, projects for all supported platforms, a unifying solution, &lt;STRONG&gt;and&lt;/STRONG&gt; pre-compiled release-mode binaries for all supported platforms (unsigned). These development releases will contain the latest internal source code changes with all the fixes and features that are in progress. Interested parties can evaluate the newest stuff and provide early feedback on what works and what's broken - feedback that can help ensure the things &lt;STRONG&gt;you&lt;/STRONG&gt; care about get some love and attention. &lt;/P&gt;
&lt;P&gt;The catch - and there's always a catch - is that I'm not committing to any kind of schedule for these releases - and they won't be as thoroughly tested as what's in the official Toolkit releases. But if that doesn't bother you, I'd &lt;STRONG&gt;love&lt;/STRONG&gt; to have your feedback! &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A href="http://cesso.org/Samples/SilverlightWpfDataVisualization/SilverlightWpfDataVisualization.zip" mce_href="http://cesso.org/Samples/SilverlightWpfDataVisualization/SilverlightWpfDataVisualization.zip"&gt;[Please click here to download the complete SilverlightWpfDataVisualization solution.]&lt;/A&gt; &lt;/STRONG&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Release Notes&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The source code for Development Release 0 is &lt;STRONG&gt;identical&lt;/STRONG&gt; to what's included with the recent &lt;A href="http://silverlight.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24246" mce_href="http://silverlight.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24246"&gt;Silverlight Toolkit July 09 release&lt;/A&gt;, so there are no new features for the Silverlight assembly. &lt;STRONG&gt;However, the WPF assembly includes the new TreeMap control and a better performing BubbleSeries!&lt;/STRONG&gt; (Please see my &lt;A href="http://blogs.msdn.com/delay/archive/2009/07/10/silverlight-charting-gets-an-update-and-a-treemap-silverlight-toolkit-july-2009-release-now-available.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/07/10/silverlight-charting-gets-an-update-and-a-treemap-silverlight-toolkit-july-2009-release-now-available.aspx"&gt;release announcement and notes&lt;/A&gt; for more information about what TreeMap is and how to use it.) &lt;/LI&gt;
&lt;LI&gt;Please remember that whenever you add a project reference to the Data Visualization assembly on WPF, you &lt;STRONG&gt;also&lt;/STRONG&gt; need to add a reference to &lt;CODE&gt;WPFToolkit.dll&lt;/CODE&gt; or you'll get weird runtime errors because the Visual State Manager (VSM) isn't available. &lt;/LI&gt;
&lt;LI&gt;The file structure of the archive looks like this (highlighted items are files; everything else is directories): &lt;PRE&gt;&lt;STRONG&gt;SilverlightWpfDataVisualization&lt;/STRONG&gt;
|   &lt;SPAN style="BACKGROUND-COLOR: aqua"&gt;SilverlightWpfDataVisualization.sln&lt;/SPAN&gt;
+---Binaries
|   +---Silverlight3
|   |       &lt;SPAN style="BACKGROUND-COLOR: yellow"&gt;System.Windows.Controls.DataVisualization.Toolkit.dll&lt;/SPAN&gt;
|   |       
|   \---WPF35
|           &lt;SPAN style="BACKGROUND-COLOR: yellow"&gt;System.Windows.Controls.DataVisualization.Toolkit.dll&lt;/SPAN&gt;
|           &lt;SPAN style="BACKGROUND-COLOR: yellow"&gt;WPFToolkit.dll&lt;/SPAN&gt;
+---Platforms
|   +---Silverlight3
|   |   |   &lt;SPAN style="BACKGROUND-COLOR: orange"&gt;Core.Silverlight3.csproj&lt;/SPAN&gt;
|   |   +---Properties
|   |   \---Themes
|   \---WPF35
|       |   &lt;SPAN style="BACKGROUND-COLOR: orange"&gt;Core.WPF35.csproj&lt;/SPAN&gt;
|       +---Properties
|       \---Themes
\---SourceCode
    \---Core
        +---Charting
        |   +---Axis
        |   +---Chart
        |   +---DataPoint
        |   +---Primitives
        |   \---Series
        +---Collections
        +---Legend
        +---Properties
        +---Title
        \---TreeMap
            +---Interpolators
            \---Layout&lt;/PRE&gt;The pre-compiled release-mode binaries are located under the &lt;CODE&gt;Binaries&lt;/CODE&gt; directory. All the common source code is under the &lt;CODE&gt;SourceCode&lt;/CODE&gt; directory. Platform-specific project and source files are under the &lt;CODE&gt;Platforms&lt;/CODE&gt; directory. The unified Visual Studio solution is in the root. &lt;/LI&gt;
&lt;LI&gt;Design-time assemblies are not part of this release because I don't expect the target audience to make changes to them and also because they add a lot of complexity. However, if there's strong interest in having the design-time assemblies included with future development releases, I'm open to doing so. &lt;/LI&gt;
&lt;LI&gt;I haven't updated my &lt;A href="http://blogs.msdn.com/delay/archive/2009/07/10/silverlight-charting-gets-an-update-and-a-treemap-silverlight-toolkit-july-2009-release-now-available.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/07/10/silverlight-charting-gets-an-update-and-a-treemap-silverlight-toolkit-july-2009-release-now-available.aspx"&gt;DataVisualizationDemos application&lt;/A&gt; for this unofficial release, but it's fairly easy to file-link the included TreeMap sample page into the WPF project to get those TreeMap samples running on WPF. (And that's exactly what I did to make sure TreeMap still works well on WPF!) &lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This whole idea of doing development releases is a bit of an experiment for me and I'm interested to see how it works out... If folks really love the idea, I'll try to do development releases more frequently. Or if it's simply too much churn for everyone to keep up with, people can always just wait for the next official Silverlight/WPF Toolkit release to come around. But however people get at it, I hope the Silverlight/WPF Data Visualization project helps customers continue to do great things with Silverlight and WPF!! &lt;/P&gt;&lt;/DIV&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9836185" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/delay/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/delay/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/delay/archive/tags/Silverlight+Toolkit/default.aspx">Silverlight Toolkit</category><category domain="http://blogs.msdn.com/delay/archive/tags/WPF+Toolkit/default.aspx">WPF Toolkit</category></item><item><title>Silverlight Charting gets an update - and a TreeMap! [Silverlight Toolkit July 2009 release now available!]</title><link>http://blogs.msdn.com/delay/archive/2009/07/10/silverlight-charting-gets-an-update-and-a-treemap-silverlight-toolkit-july-2009-release-now-available.aspx</link><pubDate>Fri, 10 Jul 2009 21:03:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9828930</guid><dc:creator>Delay</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/delay/comments/9828930.aspx</comments><wfw:commentRss>http://blogs.msdn.com/delay/commentrss.aspx?PostID=9828930</wfw:commentRss><description>&lt;div class="delay"&gt;
&lt;p&gt;
We've just published the &lt;a href="http://silverlight.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24246" mce_href="http://silverlight.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24246"&gt;July 2009 release&lt;/a&gt; of the &lt;a href="http://silverlight.codeplex.com/" mce_href="http://silverlight.codeplex.com/"&gt;Silverlight Toolkit&lt;/a&gt; to help celebrate today's release of &lt;a href="http://silverlight.net/" mce_href="http://silverlight.net/"&gt;Silverlight 3&lt;/a&gt;!
Silverlight 3 includes a wide variety of new features that significantly enhance the platform and make developing powerful applications easier than ever!
The Silverlight Toolkit helps extends the Silverlight platform by offering a compelling set of additional controls to enable even more advanced scenarios.
I encourage everyone to have a look at the live samples for &lt;a href="http://silverlight.net/samples/sl2/toolkitcontrolsamples/run/default.html" mce_href="http://silverlight.net/samples/sl2/toolkitcontrolsamples/run/default.html"&gt;Silverlight 2&lt;/a&gt; or &lt;a href="http://silverlight.net/samples/sl3/toolkitcontrolsamples/run/default.html" mce_href="http://silverlight.net/samples/sl3/toolkitcontrolsamples/run/default.html"&gt;Silverlight 3&lt;/a&gt;, download the Toolkit installer, and enjoy!
&lt;/p&gt;
&lt;blockquote&gt;
Note: The Silverlight Toolkit includes support for both Silverlight 2 &lt;strong&gt;and&lt;/strong&gt; Silverlight 3, so please have a look even if you're not upgrading to 3 today. &lt;nobr&gt;:)&lt;/nobr&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
That said, you're probably here because what you really care about is &lt;a href="http://blogs.msdn.com/delay/archive/2009/04/24/my-new-home-page-extended-updated-collection-of-great-silverlight-and-wpf-charting-resources.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/04/24/my-new-home-page-extended-updated-collection-of-great-silverlight-and-wpf-charting-resources.aspx"&gt;Silverlight/WPF Charting&lt;/a&gt;!
You may remember my last post &lt;a href="http://blogs.msdn.com/delay/archive/2009/06/25/wpf-charting-it-s-official-june-2009-release-of-the-wpf-toolkit-is-now-available.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/06/25/wpf-charting-it-s-official-june-2009-release-of-the-wpf-toolkit-is-now-available.aspx"&gt;announcing the June 2009 release of the WPF Toolkit with the first official release of WPF Charting&lt;/a&gt;.
I'm pleased to announce that this release of Silverlight Charting is &lt;em&gt;almost&lt;/em&gt; exactly in sync with its WPF Charting sibling!
There were just &lt;strong&gt;two&lt;/strong&gt; notable change that happened too late to be included with WPF Charting - they're in &lt;em&gt;italics&lt;/em&gt; below (along with a third, very minor tweak):
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;u&gt;Notable Changes&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;
&lt;strong&gt;Included new TreeMap control!&lt;/strong&gt;
Please refer to the second half of this post for lots more about what a TreeMap is, what it's good for, and how to use it!
&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Improved performance of internal data structures for many common scenarios.&lt;/strong&gt;
Charting now makes use of &lt;a href="http://en.wikipedia.org/wiki/Red_black_tree" mce_href="http://en.wikipedia.org/wiki/Red_black_tree"&gt;left-leaning red-black trees&lt;/a&gt; to maintain properly balanced data structures.
For more detail on this change, please refer to my &lt;a href="http://blogs.msdn.com/delay/archive/2009/06/02/maintaining-balance-a-versatile-red-black-tree-implementation-for-net-via-silverlight-wpf-charting.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/06/02/maintaining-balance-a-versatile-red-black-tree-implementation-for-net-via-silverlight-wpf-charting.aspx"&gt;post about the LeftLeaningRedBlackTree implementation&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Numerous bug fixes for animation inconsistencies between Silverlight and WPF.&lt;/strong&gt;
&lt;a href="http://blogs.msdn.com/delay/archive/2009/04/28/trying-to-get-the-story-straight-a-brief-summary-of-storyboard-differences-between-wpf-and-silverlight.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/04/28/trying-to-get-the-story-straight-a-brief-summary-of-storyboard-differences-between-wpf-and-silverlight.aspx"&gt;Storyboards and Animations sometimes behave a little differently on Silverlight/WPF&lt;/a&gt;, and a good bit of effort was spent trying to ensure that Charting will behave the same way on both platforms.
In most cases, this was a matter of finding an implementation both platforms agreed on - in some it meant resorting to small, localized &lt;code&gt;#if&lt;/code&gt; blocks.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Fixed handling of data objects with non-unique hash codes.&lt;/strong&gt;
When each data object had a unique hash code, things already worked fine.
But data sets containing items sharing the same hash code could exhibit incorrect behavior in previous releases.
Most typical data sets would &lt;strong&gt;not&lt;/strong&gt; have encountered this problem because hash codes are nearly always unique - but there are certain classes that report quite &lt;strong&gt;UN&lt;/strong&gt;unique hash codes and could trigger the problem fairly easily.
This is no longer an issue.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Corrected behavior of charts at very small sizes and during animations.&lt;/strong&gt;
Some third party controls offer so-called "fluid" layout in which size changes are all animated and elements can easily shrink to a size of 0x0.
This kind of environment could previously trigger layout bugs that would result in an unhandled exception from the &lt;code&gt;Chart&lt;/code&gt; control.
These issues have been fixed and dynamic layout changes are now handled seamlessly.
&lt;/p&gt;
&lt;p&gt;&lt;em&gt;
&lt;strong&gt;Improved the performance of BubbleSeries.&lt;/strong&gt;
Scenarios with many bubbles animating simultaneously could have previously exhibited some sluggishness.
In this release for Silverlight we've implemented an optimization that saves a significant amount of time in such cases.
Animations of &lt;code&gt;BubbleSeries&lt;/code&gt; data changes are now considerably smoother.
&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;u&gt;Breaking Changes&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;IRequireGlobalSeriesIndex's GlobalSeriesIndexChanged method takes a nullable int parameter.&lt;/strong&gt;
This should affect only people who have written custom Series implementations - and the code change is a trivial.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;u&gt;Other Changes&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Many other fixes and improvements.&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Better handling of non-&lt;code&gt;double&lt;/code&gt; data by shared &lt;code&gt;Series&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
Addition of &lt;code&gt;StrokeMiterLimit&lt;/code&gt; to the &lt;code&gt;Polyline&lt;/code&gt; used by &lt;code&gt;LineSeries&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
Fixes for edge case scenarios when removing a &lt;code&gt;Series&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
Ability to set &lt;code&gt;Series.Title&lt;/code&gt; with a &lt;code&gt;Binding&lt;/code&gt; (on Silverlight 3 and WPF)
&lt;/li&gt;
&lt;li&gt;
Automatic inheritance of the &lt;code&gt;Foreground&lt;/code&gt; property by the &lt;code&gt;Title&lt;/code&gt; control
&lt;/li&gt;
&lt;li&gt;
Visual improvements to the &lt;code&gt;LegendItem&lt;/code&gt; &lt;code&gt;DataPoint&lt;/code&gt; marker
&lt;/li&gt;
&lt;li&gt;&lt;em&gt;
Improvement to &lt;code&gt;AreaSeries&lt;/code&gt; default &lt;code&gt;Style&lt;/code&gt; &lt;code&gt;StrokeThickness&lt;/code&gt; behavior
&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
In my &lt;a href="http://blogs.msdn.com/delay/archive/2009/06/25/wpf-charting-it-s-official-june-2009-release-of-the-wpf-toolkit-is-now-available.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/06/25/wpf-charting-it-s-official-june-2009-release-of-the-wpf-toolkit-is-now-available.aspx"&gt;earlier post about WPF Charting&lt;/a&gt;, I announced a new DataVisualizationDemos sample that consolidates all the Charting samples I've posted to my blog into one handy place and compiles/runs on both Silverlight and WPF.
I've just updated DataVisualizationDemos for &lt;strong&gt;this&lt;/strong&gt; release so it includes everything through the "Letter Frequency" sample I introduced last time, the original easing functions sample from the &lt;a href="http://blogs.msdn.com/delay/archive/2009/03/19/silverlight-charting-is-faster-and-better-than-ever-silverlight-toolkit-march-09-release-now-available.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/03/19/silverlight-charting-is-faster-and-better-than-ever-silverlight-toolkit-march-09-release-now-available.aspx"&gt;March 2009 release notes&lt;/a&gt;, my recent &lt;a href="http://blogs.msdn.com/delay/archive/2009/06/15/peanut-butter-jelly-time-how-to-create-a-pleasing-visual-effect-with-silverlight-wpf-charting.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/06/15/peanut-butter-jelly-time-how-to-create-a-pleasing-visual-effect-with-silverlight-wpf-charting.aspx"&gt;"Jelly Charting" demonstration&lt;/a&gt;, &lt;strong&gt;and&lt;/strong&gt; a completely new sample:
&lt;/p&gt;
&lt;img src="http://blogs.msdn.com/blogfiles/delay/DataVisualizationDemos-Jul09-TreeMap-Demo.png" mce_src="http://blogs.msdn.com/blogfiles/delay/DataVisualizationDemos-Jul09-TreeMap-Demo.png" alt="TreeMap Introduction" width="394" height="382"&gt;
&lt;p&gt;&lt;strong&gt;
&lt;a href="http://cesso.org/Samples/DataVisualizationDemos/DataVisualizationDemos.zip" mce_href="http://cesso.org/Samples/DataVisualizationDemos/DataVisualizationDemos.zip"&gt;Click here to download the complete source code for the DataVisualizationDemos sample application.&lt;/a&gt;
&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
The new sample shows off the &lt;a href="http://en.wikipedia.org/wiki/Treemap" mce_href="http://en.wikipedia.org/wiki/Treemap"&gt;TreeMap&lt;/a&gt; control that's now part of the &lt;code&gt;System.Windows.Controls.DataVisualization&lt;/code&gt; namespace.
The &lt;a href="http://en.wikipedia.org/wiki/Treemap" mce_href="http://en.wikipedia.org/wiki/Treemap"&gt;Wikipedia entry&lt;/a&gt; explains TreeMaps in detail; the executive summary is that TreeMaps are used to visualize the values of a single property (ex: team scores) across an entire data set.
They do this by adjusting the size (i.e., area) of each element so items with larger values are bigger, items with smaller values are littler, and the relative proportions are correct.
There are some different algorithms to do this layout; our TreeMap implements the common "squarified" algorithm.
&lt;/p&gt;
&lt;p&gt;
But enough background - let's use a TreeMap to visualize some data!
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
To begin, imagine that we have a data set listing all the blog posts I've made and the following details for each: post date, length, tags, and relative popularity.
&lt;em&gt;(Aside: The popularity measure is not accurate because it's based on an incomplete set of statistics - but it's sufficient for our purposes.)&lt;/em&gt;
Let's begin by displaying all the posts ranked by popularity - that looks like this:
&lt;/p&gt;
&lt;img src="http://blogs.msdn.com/blogfiles/delay/DataVisualizationDemos-Jul09-TreeMap-Simple.png" mce_src="http://blogs.msdn.com/blogfiles/delay/DataVisualizationDemos-Jul09-TreeMap-Simple.png" alt="Simple TreeMap" width="441" height="342"&gt;
&lt;p&gt;
The XAML is a tad verbose, but it's quite easy to understand:
&lt;/p&gt;
&lt;pre&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;datavis&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;TreeMap
&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;   &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; x&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Name&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="AllPosts"
&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;   &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; ItemsSource&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="{&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;Binding&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;}"&amp;gt;
&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;datavis&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;TreeMap.ItemDefinition&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;
&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;datavis&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;TreeMapItemDefinition
&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;           &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; ValueBinding&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="{&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;Binding&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; Popularity&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;}"&amp;gt;
&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;            &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;DataTemplate&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;
&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;                &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;Grid&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;
&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;                    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;Border
&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;                       &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; BorderBrush&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="Black"
&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;                       &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; BorderThickness&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="1"
&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;                       &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; Background&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="#ff7fc3ff"
&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;                       &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; Margin&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="0 0 1 1"&amp;gt;
&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;                        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;Grid&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; Background&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="{&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;StaticResource&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; GradientOverlay&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;}"&amp;gt;
&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;                            &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;controls&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;Viewbox&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; Margin&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="3 0 3 0"&amp;gt;
&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;                                &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;TextBlock&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; Text&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="{&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;Binding&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; FormattedDate&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;}"/&amp;gt;
&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;                            &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;controls&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;Viewbox&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;
&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;                        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;Grid&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;
&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;                        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;ToolTipService.ToolTip&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;
&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;                            &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;StackPanel&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;
&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;                                &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;TextBlock&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; Text&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="{&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;Binding&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; Title&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;}"/&amp;gt;
&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;                                &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;TextBlock&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; Text&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="{&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;Binding&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; FormattedTags&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;}"&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; FontStyle&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="Italic"/&amp;gt;
&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;                                &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;TextBlock&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; Text&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="{&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;Binding&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; FormattedDate&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;}"/&amp;gt;
&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;                            &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;StackPanel&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;
&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;                        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;ToolTipService.ToolTip&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;
&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;                    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;Border&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;
&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;                &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;Grid&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;
&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;            &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;DataTemplate&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;
&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;datavis&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;TreeMapItemDefinition&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;
&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;datavis&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;TreeMap.ItemDefinition&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;datavis&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;TreeMap&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
We start out by creating a &lt;code&gt;TreeMap&lt;/code&gt; and pointing it at our data set using the standard &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.itemscontrol%28VS.95%29.aspx" mce_href="http://msdn.microsoft.com/en-us/library/system.windows.controls.itemscontrol(VS.95).aspx"&gt;ItemsControl&lt;/a&gt; pattern of setting the &lt;code&gt;ItemsSource&lt;/code&gt; property.
Then we specify a &lt;code&gt;TreeMapItemDefinition&lt;/code&gt; to describe what the items should look like and provide a &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.data.binding%28VS.95%29.aspx" mce_href="http://msdn.microsoft.com/en-us/library/system.windows.data.binding(VS.95).aspx"&gt;Binding&lt;/a&gt; to identify the value we're visualizing.
&lt;/p&gt;
&lt;p&gt;
At this point, you may be wondering whether there's a corresponding &lt;code&gt;TreeMapItem&lt;/code&gt; control for each element (think &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.listboxitem%28VS.95%29.aspx" mce_href="http://msdn.microsoft.com/en-us/library/system.windows.controls.listboxitem(VS.95).aspx"&gt;ListBoxItem&lt;/a&gt;).
Well, there is &lt;strong&gt;not&lt;/strong&gt;.
The reason being that TreeMaps are often used to display very large data sets with hundreds of elements - and it turns out that the overhead of having a wrapper control for each of those elements adds up quickly.
So &lt;code&gt;TreeMap&lt;/code&gt; takes the slightly different approach of allowing you to define a &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.datatemplate%28VS.95%29.aspx" mce_href="http://msdn.microsoft.com/en-us/library/system.windows.datatemplate(VS.95).aspx"&gt;DataTemplate&lt;/a&gt; for its item (as with &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.itemscontrol.itemtemplate%28VS.95%29.aspx" mce_href="http://msdn.microsoft.com/en-us/library/system.windows.controls.itemscontrol.itemtemplate(VS.95).aspx"&gt;ItemsControl.ItemTemplate&lt;/a&gt;).
This &lt;code&gt;DataTemplate&lt;/code&gt; can be as simple or as complex as you'd like - and can even use a custom &lt;code&gt;TreeMapItem&lt;/code&gt;-like control - so there's no loss of flexibility.
However, there's a &lt;strong&gt;big&lt;/strong&gt; win in performance: this approach is roughly &lt;strong&gt;four&lt;/strong&gt; times faster!
&lt;/p&gt;
&lt;p&gt;
The contents of the &lt;code&gt;DataTemplate&lt;/code&gt; used here are pretty typical: a border around some text that's bound to the underlying data object and a helpful ToolTip to display more detail when the user mouses over the element.
It's as easy as that!
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
Okay, let's get a little more advanced and display &lt;strong&gt;two&lt;/strong&gt; values at the same time!
The conventional way of showing a second value in a TreeMap is by varying the color of the items, so we'll do that.
Size corresponds to popularity as before, but now we're using color saturation to visualize post length (where darker=longer):
&lt;/p&gt;
&lt;img src="http://blogs.msdn.com/blogfiles/delay/DataVisualizationDemos-Jul09-TreeMap-Interpolator.png" mce_src="http://blogs.msdn.com/blogfiles/delay/DataVisualizationDemos-Jul09-TreeMap-Interpolator.png" alt="TreeMap with Interpolator" width="441" height="341"&gt;
&lt;p&gt;
The basic &lt;code&gt;TreeMap&lt;/code&gt; definition is basically the same as last time - the interesting part is the contents of the &lt;code&gt;Interpolators&lt;/code&gt; collection:
&lt;/p&gt;
&lt;pre&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;...
&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;datavis&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;TreeMap.Interpolators&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;
&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;datavis&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;SolidColorBrushInterpolator
&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;       &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; TargetName&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="Border"
&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;       &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; TargetProperty&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="Background"
&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;       &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; DataRangeBinding&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="{&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;Binding&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; Length&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;}"
&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;       &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; From&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="#ffeeeeff"
&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;       &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; To&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="#ff8080ff"/&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;datavis&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;TreeMap.Interpolators&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;
&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;...
&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
What's an &lt;code&gt;Interpolator&lt;/code&gt;?
It's a new concept we've introduced for &lt;code&gt;TreeMap&lt;/code&gt; to automatically map a particular value ("Length" in this case) to a range of &lt;em&gt;something&lt;/em&gt;.
In this case, the &lt;em&gt;something&lt;/em&gt; is colors, so we're using &lt;code&gt;SolidColorBrushInterpolator&lt;/code&gt; which works great for backgrounds and foregrounds.
There's also &lt;code&gt;DoubleInterpolator&lt;/code&gt; which is handy for changing opacity, font size, and things like that.
And if you want to do something different, it's simple to create your own mapping by deriving from &lt;code&gt;Interpolator&lt;/code&gt; (or &lt;code&gt;RangeInterpolator&amp;lt;T&amp;gt;&lt;/code&gt;)!
&lt;/p&gt;
&lt;p&gt;
We've purposely made &lt;code&gt;SolidColorBrushInterpolator&lt;/code&gt; easy to use - note how it cleanly incorporates the familiar notions of &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.media.animation.storyboard%28VS.95%29.aspx" mce_href="http://msdn.microsoft.com/en-us/library/system.windows.media.animation.storyboard(VS.95).aspx"&gt;Storyboard&lt;/a&gt;'s &lt;code&gt;TargetName&lt;/code&gt; and &lt;code&gt;TargetProperty&lt;/code&gt; properties with &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.media.animation.coloranimation%28VS.95%29.aspx" mce_href="http://msdn.microsoft.com/en-us/library/system.windows.media.animation.coloranimation(VS.95).aspx"&gt;ColorAnimation&lt;/a&gt;'s &lt;code&gt;From&lt;/code&gt; and &lt;code&gt;To&lt;/code&gt;.
The remaining property, &lt;code&gt;DataRangeBinding&lt;/code&gt;, provides a &lt;code&gt;Binding&lt;/code&gt; that's used to identify the relevant variable on the data objects.
Once everything's in place, the &lt;code&gt;Interpolator&lt;/code&gt; automatically &lt;strong&gt;interpolates&lt;/strong&gt; each value according to where it falls in the overall range of values!
&lt;/p&gt;
&lt;p&gt;
It's a simple, yet powerful concept that makes it easy to build powerful visualizations without writing any code at all.
And please note that the &lt;code&gt;TreeMap.Interpolators&lt;/code&gt; property is a &lt;strong&gt;collection&lt;/strong&gt;, so you can add as many of these as you'd like in order to visualize multiple values or control multiple properties!
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
This time, instead of visualizing posts, let's visualize tags.
Specifically, let's see how many posts have been tagged with each tag name (remembering that some posts have multiple tags):
&lt;/p&gt;
&lt;img src="http://blogs.msdn.com/blogfiles/delay/DataVisualizationDemos-Jul09-TreeMap-Linq.png" mce_src="http://blogs.msdn.com/blogfiles/delay/DataVisualizationDemos-Jul09-TreeMap-Linq.png" alt="TreeMap via Linq" width="442" height="342"&gt;
&lt;p&gt;
The aggregation of per-post data into per-tag data is made easy by a simple bit of Linq that first creates a unique tag/post object for each tag/post pairing, then groups these all by tag, and finally selects them into a new collection of objects:
&lt;/p&gt;
&lt;pre&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;var&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; blogPostsByTag = blogPosts
    .SelectMany(p =&amp;gt; p.Tags.Select(t =&amp;gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; { Tag = t, Post = p }))
    .GroupBy(p =&amp;gt; p.Tag)
    .Select(g =&amp;gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;BlogTag&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; { Tag = g.Key, Posts = g.Select(p =&amp;gt; p.Post).ToArray() });
&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
After that, creating the &lt;code&gt;TreeMap&lt;/code&gt; is easy - it's just a minor variation of what we've already seen.
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
For our final trick, let's enhance the previous sample so we can see posts sorted by popularity &lt;strong&gt;within&lt;/strong&gt; each tag grouping:
&lt;/p&gt;
&lt;img src="http://blogs.msdn.com/blogfiles/delay/DataVisualizationDemos-Jul09-TreeMap-Nested.png" mce_src="http://blogs.msdn.com/blogfiles/delay/DataVisualizationDemos-Jul09-TreeMap-Nested.png" alt="Nested TreeMaps" width="442" height="342"&gt;
&lt;p&gt;
This is pretty easy to do as well - it's the previous &lt;code&gt;TreeMap&lt;/code&gt; with copies of the first &lt;code&gt;TreeMap&lt;/code&gt; &lt;em&gt;nested inside each tag node&lt;/em&gt;!
Nested TreeMaps?
Sure!
Like I said, the &lt;code&gt;DataTemplate&lt;/code&gt; model is totally flexible.
The outer &lt;code&gt;TreeMap&lt;/code&gt; creates the bounding boxes, and the inner &lt;code&gt;TreeMap&lt;/code&gt;s sub-divide them according to post popularity.
No sweat... &lt;nobr&gt;:)&lt;/nobr&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
As I hope you'll agree, the new &lt;code&gt;TreeMap&lt;/code&gt; is a pretty cool addition to the Data Visualization assembly!
And we wouldn't have it if not for the tireless efforts of the folks on the &lt;a href="http://blogs.msdn.com/gpde/" mce_href="http://blogs.msdn.com/gpde/"&gt;GPD-E (Global Product Development Europe) team&lt;/a&gt; who we partnered with to deliver this new control.
In particular, all the real work was done by &lt;strong&gt;Cristian Costache&lt;/strong&gt;, &lt;strong&gt;&lt;a href="http://blogs.msdn.com/marlat/" mce_href="http://blogs.msdn.com/marlat/"&gt;Marek Latuskiewicz&lt;/a&gt;&lt;/strong&gt;, and &lt;strong&gt;Gareth Bradshaw&lt;/strong&gt; - I mainly helped coordinate things and do a bit of testing.
I'd like to extend my sincere thanks to these guys for their passion and dedication these past few weeks!
Please check out their blogs for more information about &lt;code&gt;TreeMap&lt;/code&gt; in the coming weeks! &lt;nobr&gt;:)&lt;/nobr&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PS&lt;/strong&gt; - If you have any questions or feedback, the right places to start are the &lt;a href="http://silverlight.net/forums/35.aspx" mce_href="http://silverlight.net/forums/35.aspx"&gt;Silverlight Discussion Forum&lt;/a&gt; or the &lt;a href="http://wpf.codeplex.com/Thread/List.aspx" mce_href="http://wpf.codeplex.com/Thread/List.aspx"&gt;WPF Discussion List&lt;/a&gt;.
Bugs and feature requests can be logged with the &lt;a href="http://silverlight.codeplex.com/WorkItem/List.aspx" mce_href="http://silverlight.codeplex.com/WorkItem/List.aspx"&gt;Silverlight Issue Tracker&lt;/a&gt; or the &lt;a href="http://wpf.codeplex.com/WorkItem/List.aspx" mce_href="http://wpf.codeplex.com/WorkItem/List.aspx"&gt;WPF Issue Tracker&lt;/a&gt;.
Please raise issues that are clearly unique to one platform or the other in the obvious place.
But for general questions and things that are common to both platforms, the Silverlight forum/list is probably a better place because there's more context and history there.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PPS&lt;/strong&gt; - &lt;code&gt;TreeMap&lt;/code&gt; is currently available only as part of the Silverlight Toolkit.
However, it should run perfectly well on WPF; in fact, I did that as part of the testing process!
Interested parties can recompile the Silverlight source code for WPF in order to start playing with TreeMaps on WPF today; the process should be pretty easy because both the Silverlight and WPF Toolkits are open source and share the same source code files/layout/etc..
However, I'll be posting more about this in the next few days and hope to have explicit directions &lt;strong&gt;and&lt;/strong&gt; a script to make the entire process easy for everyone! &lt;nobr&gt;:)&lt;/nobr&gt;
&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9828930" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/delay/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/delay/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/delay/archive/tags/Silverlight+Toolkit/default.aspx">Silverlight Toolkit</category><category domain="http://blogs.msdn.com/delay/archive/tags/WPF+Toolkit/default.aspx">WPF Toolkit</category></item><item><title>WPF Charting: It's official! [June 2009 release of the WPF Toolkit is now available!]</title><link>http://blogs.msdn.com/delay/archive/2009/06/25/wpf-charting-it-s-official-june-2009-release-of-the-wpf-toolkit-is-now-available.aspx</link><pubDate>Thu, 25 Jun 2009 21:52:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9804053</guid><dc:creator>Delay</dc:creator><slash:comments>16</slash:comments><comments>http://blogs.msdn.com/delay/comments/9804053.aspx</comments><wfw:commentRss>http://blogs.msdn.com/delay/commentrss.aspx?PostID=9804053</wfw:commentRss><description>&lt;div class="delay"&gt;
&lt;p&gt;
The WPF Toolkit team just published the &lt;a href="http://wpf.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=29117" mce_href="http://wpf.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=29117"&gt;June 2009 release of the WPF Toolkit&lt;/a&gt;.
Those of you who know I'm on the &lt;a href="http://silverlight.codeplex.com/" mce_href="http://silverlight.codeplex.com/"&gt;Silverlight Toolkit&lt;/a&gt; team are probably wondering why this is relevant - so let's get right to the release notes for the next version of &lt;a href="http://blogs.msdn.com/delay/archive/2009/04/24/my-new-home-page-extended-updated-collection-of-great-silverlight-and-wpf-charting-resources.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/04/24/my-new-home-page-extended-updated-collection-of-great-silverlight-and-wpf-charting-resources.aspx"&gt;Silverlight/WPF Charting&lt;/a&gt; because they'll clear things up:
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;u&gt;Notable Changes&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;WPF is now an official platform for Charting!&lt;/strong&gt;
Today's release of the June 2009 WPF Toolkit includes the binaries for WPF Charting, the associated design-time assemblies for both Visual Studio 2008 and Blend 3, and the complete source code for everything (under the usual &lt;a href="http://www.microsoft.com/opensource/licenses.mspx#Ms-PL" mce_href="http://www.microsoft.com/opensource/licenses.mspx#Ms-PL"&gt;Ms-PL license&lt;/a&gt;).
Prior to today, WPF Charting only existed informally because of a &lt;a href="http://blogs.msdn.com/delay/archive/2009/03/26/if-they-can-build-it-they-will-come-enabling-anyone-to-compile-wpf-charting-from-the-silverlight-charting-sources.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/03/26/if-they-can-build-it-they-will-come-enabling-anyone-to-compile-wpf-charting-from-the-silverlight-charting-sources.aspx"&gt;blog post I'd written&lt;/a&gt; and &lt;a href="http://blogs.msdn.com/delay/archive/2009/03/20/silverlight-charting-remains-just-a-click-away-and-runs-on-wpf-too-chartbuilder-sample-and-source-code-updated-for-charting-s-march-09-release.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/03/20/silverlight-charting-remains-just-a-click-away-and-runs-on-wpf-too-chartbuilder-sample-and-source-code-updated-for-charting-s-march-09-release.aspx"&gt;some bits I'd shared&lt;/a&gt;.
As of today, that "do it yourself" approach is a thing of the past - customers can get signed binaries and ready-to-build source code for Charting as part of the WPF Toolkit.
And, as always, Charting exposes the &lt;strong&gt;same&lt;/strong&gt; API and supports the &lt;strong&gt;same&lt;/strong&gt; XAML on &lt;strong&gt;both&lt;/strong&gt; platforms - making application portability trivial!
&lt;/p&gt;
&lt;img src="http://blogs.msdn.com/blogfiles/delay/WpfCharting-Jun09-Installer.png" mce_src="http://blogs.msdn.com/blogfiles/delay/WpfCharting-Jun09-Installer.png" alt="WPF Toolkit installer" width="499" height="385"&gt;
&lt;p&gt;
&lt;strong&gt;Improved performance of internal data structures for many common scenarios.&lt;/strong&gt;
Charting now makes use of &lt;a href="http://en.wikipedia.org/wiki/Red_black_tree" mce_href="http://en.wikipedia.org/wiki/Red_black_tree"&gt;left-leaning red-black trees&lt;/a&gt; to maintain properly balanced data structures.
For more detail on this change, please refer to my &lt;a href="http://blogs.msdn.com/delay/archive/2009/06/02/maintaining-balance-a-versatile-red-black-tree-implementation-for-net-via-silverlight-wpf-charting.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/06/02/maintaining-balance-a-versatile-red-black-tree-implementation-for-net-via-silverlight-wpf-charting.aspx"&gt;post about the LeftLeaningRedBlackTree implementation&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Numerous bug fixes for animation inconsistencies between Silverlight and WPF.&lt;/strong&gt;
&lt;a href="http://blogs.msdn.com/delay/archive/2009/04/28/trying-to-get-the-story-straight-a-brief-summary-of-storyboard-differences-between-wpf-and-silverlight.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/04/28/trying-to-get-the-story-straight-a-brief-summary-of-storyboard-differences-between-wpf-and-silverlight.aspx"&gt;Storyboards and Animations sometimes behave a little differently on Silverlight/WPF&lt;/a&gt;, and a good bit of effort was spent trying to ensure that Charting will behave the same way on both platforms.
In most cases, this was a matter of finding an implementation both platforms agreed on - in some it meant resorting to small, localized &lt;code&gt;#if&lt;/code&gt; blocks.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Fixed handling of data objects with non-unique hash codes.&lt;/strong&gt;
When each data object had a unique hash code, things already worked fine.
But data sets containing items sharing the same hash code could exhibit incorrect behavior in previous releases.
Most typical data sets would &lt;strong&gt;not&lt;/strong&gt; have encountered this problem because hash codes are nearly always unique - but there are certain classes that report quite &lt;strong&gt;UN&lt;/strong&gt;unique hash codes and could trigger the problem fairly easily.
This is no longer an issue.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Corrected behavior of charts at very small sizes and during animations.&lt;/strong&gt;
Some third party controls offer so-called "fluid" layout in which size changes are all animated and elements can easily shrink to a size of 0x0.
This kind of environment could previously trigger layout bugs that would result in an unhandled exception from the &lt;code&gt;Chart&lt;/code&gt; control.
These issues have been fixed and dynamic layout changes are now handled seamlessly.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;u&gt;Breaking Changes&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;IRequireGlobalSeriesIndex's GlobalSeriesIndexChanged method takes a nullable int parameter.&lt;/strong&gt;
This should affect only people who have written custom Series implementations - and the code change is a trivial.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;u&gt;Other Changes&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Many other fixes and improvements.&lt;/strong&gt;
&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;
Proper &lt;code&gt;RoutedEvent&lt;/code&gt; support for &lt;code&gt;DataPointSeries.SelectionChangedEvent&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
Better handling of non-&lt;code&gt;double&lt;/code&gt; data by shared &lt;code&gt;Series&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
Addition of &lt;code&gt;StrokeMiterLimit&lt;/code&gt; to the &lt;code&gt;Polyline&lt;/code&gt; used by &lt;code&gt;LineSeries&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
Fixes for edge case scenarios when removing a &lt;code&gt;Series&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
Ability to set &lt;code&gt;Series.Title&lt;/code&gt; with a &lt;code&gt;Binding&lt;/code&gt; (on Silverlight 3 and WPF)
&lt;/li&gt;
&lt;li&gt;
Automatic inheritance of the &lt;code&gt;Foreground&lt;/code&gt; property by the &lt;code&gt;Title&lt;/code&gt; control
&lt;/li&gt;
&lt;li&gt;
Visual improvements to the &lt;code&gt;LegendItem&lt;/code&gt; &lt;code&gt;DataPoint&lt;/code&gt; marker
&lt;/li&gt;
&lt;li&gt;
Addition of &lt;code&gt;SnapsToDevicePixels&lt;/code&gt; to the default &lt;code&gt;Chart&lt;/code&gt; &lt;code&gt;Template&lt;/code&gt; (WPF-only; unnecessary on Silverlight)
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Build Notes&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
If you plan to recompile the WPF Toolkit from source, please be aware that two of the three Charting &lt;strong&gt;design-time&lt;/strong&gt; assemblies reference Blend 3 DLLs &lt;code&gt;Microsoft.Windows.Design.Extensibility.dll&lt;/code&gt; and &lt;code&gt;Microsoft.Windows.Design.Interaction.dll&lt;/code&gt;.
Unlike their Visual Studio counterparts, these design-time assemblies are &lt;strong&gt;not&lt;/strong&gt; automatically found by the build and their absence causes 84 build errors in the &lt;code&gt;Controls.DataVisualization.Toolkit.Design&lt;/code&gt; and &lt;code&gt;Controls.DataVisualization.Toolkit.Expression.Design&lt;/code&gt; projects. &lt;nobr&gt;:(&lt;/nobr&gt;
&lt;/p&gt;
&lt;p&gt;
Most people won't care about building the &lt;strong&gt;Blend-specific design-time&lt;/strong&gt; assemblies and can simply right-click the two failing projects in Visual Studio and choose "Unload Project".
After that, everything builds successfully.
&lt;/p&gt;
&lt;p&gt;
Alternatively, users with Blend installed can update these projects' references to both assemblies and then everything (including the Blend design-time assemblies!) builds successfully.
The default location of the Blend assemblies is something like &lt;code&gt;C:\Program Files (x86)\Microsoft Expression\Blend 3 Beta&lt;/code&gt;.
(If you're on a 32-bit OS, remove the "&lt;code&gt; x86&lt;/code&gt;"; once Blend releases, remove the "&lt;code&gt; Beta&lt;/code&gt;".
&lt;/p&gt;
&lt;p&gt;
Sorry for the inconvenience - we didn't want to ship pre-release Blend components with the WPF Toolkit.
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
Long-time readers know that I always include some new Charting samples with my release notes to showcase new features.
The big feature here is WPF Charting, so I've put together a solution that contains almost all of the public Charting samples I've ever posted to my blog - &lt;strong&gt;now in one handy place&lt;/strong&gt;!
Naturally, the DataVisualizationDemos sample runs on both Silverlight (2 or 3!) and WPF with the exact same code and XAML.
And it includes a brand new scenario called "Letter Frequency" that I wrote to help test some of the recent changes.
&lt;/p&gt;
&lt;p&gt;
Here it is on WPF:
&lt;/p&gt;
&lt;img src="http://blogs.msdn.com/blogfiles//delay/WpfCharting-Jun09-LetterFrequency.png" mce_src="http://blogs.msdn.com/blogfiles//delay/WpfCharting-Jun09-LetterFrequency.png" alt="DataVisualizationDemos Letter Frequency sample" width="515" height="415"&gt;
&lt;p&gt;&lt;strong&gt;
&lt;a href="http://cesso.org/Samples/DataVisualizationDemos/DataVisualizationDemos.zip" mce_href="http://cesso.org/Samples/DataVisualizationDemos/DataVisualizationDemos.zip"&gt;Click here to download the complete source code for the DataVisualizationDemos sample application.&lt;/a&gt;
&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;
(Note: To find the blog post associated with each sample, please refer to the "My posts" section of my &lt;a href="http://blogs.msdn.com/delay/archive/2009/04/24/my-new-home-page-extended-updated-collection-of-great-silverlight-and-wpf-charting-resources.aspx" mce_href="http://blogs.msdn.com/delay/archive/2009/04/24/my-new-home-page-extended-updated-collection-of-great-silverlight-and-wpf-charting-resources.aspx"&gt;Charting Links collection&lt;/a&gt;.)
&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
Jafar and I spent most of the previous release cycle helping other teams with their deliverables, so we didn't get as nearly much time to spend on Charting as we would have liked.
&lt;em&gt;[Otherwise the release notes would be much longer! &lt;nobr&gt;:)&lt;/nobr&gt; ]&lt;/em&gt;
Fortunately, we &lt;strong&gt;did&lt;/strong&gt; make the time to deliver some good fixes for this release and that should help make customers' lives a little easier.
Of course, while we've done our best to make Charting as useful and problem-free as possible, there's &lt;strong&gt;always&lt;/strong&gt; room for improvement...
&lt;/p&gt;
&lt;p&gt;
So if you have any questions or feedback, the right places to start are the &lt;a href="http://silverlight.net/forums/35.aspx" mce_href="http://silverlight.net/forums/35.aspx"&gt;Silverlight Discussion Forum&lt;/a&gt; or the &lt;a href="http://wpf.codeplex.com/Thread/List.aspx" mce_href="http://wpf.codeplex.com/Thread/List.aspx"&gt;WPF Discussion List&lt;/a&gt;.
Bugs and feature requests can be logged with the &lt;a href="http://silverlight.codeplex.com/WorkItem/List.aspx" mce_href="http://silverlight.codeplex.com/WorkItem/List.aspx"&gt;Silverlight Issue Tracker&lt;/a&gt; or the &lt;a href="http://wpf.codeplex.com/WorkItem/List.aspx" mce_href="http://wpf.codeplex.com/WorkItem/List.aspx"&gt;WPF Issue Tracker&lt;/a&gt;.
Please raise issues that are clearly unique to one platform or the other in the obvious place.
But for general questions and things that are common to both platforms, the Silverlight forum/list is probably a better place - just because there's more context and history there.
&lt;/p&gt;
&lt;p&gt;
A big "thank you" goes out to everyone who's worked with Charting and helped to make it what it is today!
Today's release and announcement are specifically directed at the WPF early-adopters who've &lt;strong&gt;truly&lt;/strong&gt; gone the extra mile to use Charting.
We thank you for your dedication!
Also, my personal thanks go out to the WPF Toolkit team for making this possible - in particular to &lt;strong&gt;Samantha Durante&lt;/strong&gt;, &lt;strong&gt;Vamsee Potharaju&lt;/strong&gt;, and &lt;strong&gt;Alexis Roosa&lt;/strong&gt; for their assistance and support!
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;
PS - If you're a loyal Silverlight Charting user who's feeling a little left out right about now, I have some good news for you, too. &lt;nobr&gt;:)&lt;/nobr&gt;
The Silverlight Toolkit will &lt;strong&gt;also&lt;/strong&gt; be releasing an update fairly soon.
And when it does, Silverlight Charting will contain &lt;strong&gt;all&lt;/strong&gt; the fixes described here, one or two others that came in too late to make this release, &lt;strong&gt;AND&lt;/strong&gt; a nice little surprise that will make the wait worthwhile...
&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9804053" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/delay/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/delay/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/delay/archive/tags/Silverlight+Toolkit/default.aspx">Silverlight Toolkit</category><category domain="http://blogs.msdn.com/delay/archive/tags/WPF+Toolkit/default.aspx">WPF Toolkit</category></item></channel></rss>