<?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>Alex Gorev's Weblog : .NET Framework</title><link>http://blogs.msdn.com/alexgor/archive/tags/.NET+Framework/default.aspx</link><description>Tags: .NET Framework</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>MS Chart Control: Getting Started</title><link>http://blogs.msdn.com/alexgor/archive/2009/12/08/ms-chart-control-getting-started.aspx</link><pubDate>Tue, 08 Dec 2009 05:26:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9933903</guid><dc:creator>alexgor</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/alexgor/comments/9933903.aspx</comments><wfw:commentRss>http://blogs.msdn.com/alexgor/commentrss.aspx?PostID=9933903</wfw:commentRss><description>&lt;P&gt;Scott Mitchell&amp;nbsp;wrote a great series of articles where he describes how to use Microsoft Chart control from&amp;nbsp;simple binding to more complex scenarious. I highly recommend to read his articles for everybody starting working on the control: &lt;A href="http://www.4guysfromrolla.com/articles/072209-1.aspx" mce_href="http://www.4guysfromrolla.com/articles/072209-1.aspx"&gt;http://www.4guysfromrolla.com/articles/072209-1.aspx&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Alex.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9933903" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/alexgor/archive/tags/Chart/default.aspx">Chart</category><category domain="http://blogs.msdn.com/alexgor/archive/tags/.NET+Framework/default.aspx">.NET Framework</category><category domain="http://blogs.msdn.com/alexgor/archive/tags/Microsoft+Chart+Control/default.aspx">Microsoft Chart Control</category></item><item><title>Setting Microsoft Chart Series Colors</title><link>http://blogs.msdn.com/alexgor/archive/2009/10/06/setting-chart-series-colors.aspx</link><pubDate>Tue, 06 Oct 2009 07:33:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9903603</guid><dc:creator>alexgor</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/alexgor/comments/9903603.aspx</comments><wfw:commentRss>http://blogs.msdn.com/alexgor/commentrss.aspx?PostID=9903603</wfw:commentRss><description>&lt;P&gt;Microsoft Chart control provides different ways to set color of the series and data points:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Palettes&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Selecting one of the predefined palettes is the easiest way to change chart series colors. There are 12 built-in palettes with about 10 unique colors each.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/alexgor/WindowsLiveWriter/SettingChartSeriesColors_7C0/ChartPalettes_2.png" mce_href="http://blogs.msdn.com/blogfiles/alexgor/WindowsLiveWriter/SettingChartSeriesColors_7C0/ChartPalettes_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=ChartPalettes border=0 alt=ChartPalettes src="http://blogs.msdn.com/blogfiles/alexgor/WindowsLiveWriter/SettingChartSeriesColors_7C0/ChartPalettes_thumb.png" width=713 height=336 mce_src="http://blogs.msdn.com/blogfiles/alexgor/WindowsLiveWriter/SettingChartSeriesColors_7C0/ChartPalettes_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Chart types like column and line, will assign a unique color from the palette to each of the series. If chart runs out of the palette colors then it will start reusing them again.&amp;nbsp; &lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;PRE&gt;&lt;FONT color=#008000&gt;// Set chart series palette&lt;/FONT&gt;
Chart.Palette = ChartColorPalette.Pastel;&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Chart type like Pie, assigns unique colors to each individual data point. You can still use &lt;STRONG&gt;Chart.Palette&lt;/STRONG&gt; property or you can define different palettes for different series using &lt;STRONG&gt;Series.Palette&lt;/STRONG&gt; property. Note that setting Series.Palette property will force all chart types including Column to use unique colors for each data point.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Important! &lt;/STRONG&gt;To determine the color assigned to the series or data point from the palette you can call &lt;STRONG&gt;chart1.ApplyPaletteColors() &lt;/STRONG&gt;method and then check Series or DataPoint.Color property.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Custom Palettes&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;If none of the predefined palettes fits your needs, you can always create custom palette with as many colors as you need:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;PRE&gt;&lt;FONT color=#008000&gt;// Set chart custom palette&lt;/FONT&gt;
Chart.Palette = ChartColorPalette.None; &lt;BR&gt;Chart.PaletteCustomColors = new Color[] { Color.Red, Color.Blue, Color.Yellow};&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Empty points&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Not all series data points are equal… When you data bind your chart to the DBNull values the data points will be automatically marked as ‘empty’. You can also mark data points as empty by setting &lt;STRONG&gt;DataPoint.IsEmpty&lt;/STRONG&gt; property. Each empty data point uses the visual attributes defined in &lt;STRONG&gt;Series.EmptyPointStyle&lt;/STRONG&gt; property. &lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;PRE&gt;&lt;FONT color=#008000&gt;// Hide all series empty data point by making them transparent&lt;/FONT&gt;
Chart.Series[0].EmptyPointStyle.Color = Color.Transparent; &lt;BR&gt;&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Color Property&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;If all of the above methods does not work for you, then you can always set &lt;STRONG&gt;Color&lt;/STRONG&gt; property for the series or individual data point.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;PRE&gt;&lt;FONT color=#008000&gt;// Set color for the whole series&lt;/FONT&gt;
Chart.Series[0].Color = Color.Green;

&lt;FONT color=#008000&gt;// Set color of a single data point&lt;/FONT&gt;
Chart.Series[0].Points[5].Color = Color.Red;&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;You can always switch back to using the palette colors by setting both Series and DataPoint Color properties to Color.Empty.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Alex.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9903603" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/alexgor/archive/tags/Chart/default.aspx">Chart</category><category domain="http://blogs.msdn.com/alexgor/archive/tags/.NET+Framework/default.aspx">.NET Framework</category><category domain="http://blogs.msdn.com/alexgor/archive/tags/Microsoft+Chart+Control/default.aspx">Microsoft Chart Control</category></item><item><title>Microsoft Chart Control vs. Dundas Chart Control</title><link>http://blogs.msdn.com/alexgor/archive/2008/11/07/microsoft-chart-control-vs-dundas-chart-control.aspx</link><pubDate>Fri, 07 Nov 2008 22:32:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9052903</guid><dc:creator>alexgor</dc:creator><slash:comments>13</slash:comments><comments>http://blogs.msdn.com/alexgor/comments/9052903.aspx</comments><wfw:commentRss>http://blogs.msdn.com/alexgor/commentrss.aspx?PostID=9052903</wfw:commentRss><description>&lt;P&gt;I get a lot of questions about 'relationship' of our Microsoft Chart Control to the well known &lt;A href="http://www.dundas.com/" target=_blank mce_href="http://www.dundas.com/"&gt;Dundas Data Visualization&lt;/A&gt; controls. You can definitely see the similarities in the features, appearance, APIs and demos we use.&lt;/P&gt;
&lt;P&gt;So I will start with a&amp;nbsp; little bit of history... Dundas is one of the leaders in data visualization, who provides well known Chart, Gauge, Map and other visual controls for different Microsoft development platforms (ASP.NET, Windows Forms, SQL Reporting Services and SharePoint). Microsoft acquired Dundas Data Visualization Intellectual Property in April 2007 and is integrating this technology in different Microsoft products. New Chart and Gauge report items were already released as part of SQL Reporting Services 2008. We also announced the new Map report item which will be available in the next release of SSRS. Microsoft Chart controls (ASP.NET and Windows Forms), released at PDC 2008, also based on the source code acquired from Dundas! Microsoft Chart control is available as a separate installation for .NET Framework 3.5 SP1 and will be part of .NET Framework 4.0.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Where I can download the new Microsoft Chart controls?&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;You can download and install chart from this &lt;A class="" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=130F7986-BF49-4FE5-9CA8-910AE6EA442C&amp;amp;displaylang=en" target=_blank mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyId=130F7986-BF49-4FE5-9CA8-910AE6EA442C&amp;amp;displaylang=en"&gt;link&lt;/A&gt;.&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;So what are the differences between Microsoft and Dundas controls?&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Microsoft Chart control is based on Dundas Chart source code version 5.5. We spent significant amount of time making sure the control passes Microsoft security review and meets accessibility, API and other requirements. As a result there were a few changes including changes in the public API. Several features were also cut:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Chart UI (Toolbar, Context Menu and Property Pages) &lt;/LI&gt;
&lt;LI&gt;Flash and SVG Rendering and Animations &lt;/LI&gt;
&lt;LI&gt;ASP.NET scrolling and zooming &lt;/LI&gt;&lt;/UL&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;When other controls (Gauge, Map, ...) will be available&amp;nbsp;in the .NET Framework?&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Microsoft&amp;nbsp;does not have the exact dates at this moment when other data visualization controls for .NET Framework will be released.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Can I still purchase visualization controls from Dundas?&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Yes, you can still purchase visualization controls from Dundas. Our team will continue bringing new visualizations to different Microsoft products; meanwhile they will be available from Dundas directly, where they continue to support and enhance available visualizations.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;How do I get technical support?&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Standard Microsoft support options are available including dedicated &lt;A class="" href="http://social.msdn.microsoft.com/Forums/en-US/MSWinWebChart/threads/" target=_blank mce_href="http://social.msdn.microsoft.com/Forums/en-US/MSWinWebChart/threads/"&gt;Microsoft Chart Control Forum&lt;/A&gt;.&amp;nbsp;Please note that Dundas keeps supporting the products purchased directly from them and is not responsible for any support for Microsoft Chart Controls.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Thanks, &lt;BR&gt;Alex.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9052903" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/alexgor/archive/tags/Chart/default.aspx">Chart</category><category domain="http://blogs.msdn.com/alexgor/archive/tags/Dundas/default.aspx">Dundas</category><category domain="http://blogs.msdn.com/alexgor/archive/tags/.NET+Framework/default.aspx">.NET Framework</category><category domain="http://blogs.msdn.com/alexgor/archive/tags/Microsoft+Chart+Control/default.aspx">Microsoft Chart Control</category></item><item><title>Creating 'small' charts with Microsoft Chart Control</title><link>http://blogs.msdn.com/alexgor/archive/2008/11/05/creating-small-charts-with-microsoft-chart-control.aspx</link><pubDate>Wed, 05 Nov 2008 04:09:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9042443</guid><dc:creator>alexgor</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/alexgor/comments/9042443.aspx</comments><wfw:commentRss>http://blogs.msdn.com/alexgor/commentrss.aspx?PostID=9042443</wfw:commentRss><description>&lt;P&gt;Designing a chart when you have limited space available or when it's size can be dynamically changed&amp;nbsp; usually requires additional planning. I've been playing with a way to display sample data in a 300 by 500 pixels chart and here what I came up with:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/alexgor/WindowsLiveWriter/CreatingsmallchartswithMicrosoftChartCon_F13B/image_6.png" mce_href="http://blogs.msdn.com/blogfiles/alexgor/WindowsLiveWriter/CreatingsmallchartswithMicrosoftChartCon_F13B/image_6.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=300 alt=image src="http://blogs.msdn.com/blogfiles/alexgor/WindowsLiveWriter/CreatingsmallchartswithMicrosoftChartCon_F13B/image_thumb_3.png" width=501 border=0 mce_src="http://blogs.msdn.com/blogfiles/alexgor/WindowsLiveWriter/CreatingsmallchartswithMicrosoftChartCon_F13B/image_thumb_3.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Figure 1: Chart size 300 by 500 pixels.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;I was pretty happy with the results until I resized the chart to the actual required size of 200 by 220 pixels. So how can I fix that? I thought about that for a while and come up with the best practices below...&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/alexgor/WindowsLiveWriter/CreatingsmallchartswithMicrosoftChartCon_F13B/image_11.png" mce_href="http://blogs.msdn.com/blogfiles/alexgor/WindowsLiveWriter/CreatingsmallchartswithMicrosoftChartCon_F13B/image_11.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=197 alt=image src="http://blogs.msdn.com/blogfiles/alexgor/WindowsLiveWriter/CreatingsmallchartswithMicrosoftChartCon_F13B/image_thumb.png" width=440 border=0 mce_src="http://blogs.msdn.com/blogfiles/alexgor/WindowsLiveWriter/CreatingsmallchartswithMicrosoftChartCon_F13B/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Figure 2: Chart size 200 by 220 pixels. Best practices applied to the right chart.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Best Practices of Creating Small Charts&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;You can apply this to a small chart you want to integrate into your application or use same approach 'dynamically' if you need to support the chart which may change it's size dynamically. There is no single solution that will work in all cases, so you need to understand what you can do and what is the best for your application.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;Don't panic! Will fix it!&lt;/STRONG&gt; &lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Chart Legend &lt;/STRONG&gt;&lt;BR&gt;Legend displays important information in the chart but it also may require significant amount of chart space. Here is what you can do to optimize for space: &lt;BR&gt;
&lt;UL&gt;
&lt;LI&gt;Hide legend if it is not essential for your chart &lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;Restrict how much size legend may possible take. This can be achieved using &lt;STRONG&gt;Chart.Legends[0].MaximumAutoSize&lt;/STRONG&gt; property. The default value is 50 and it means that legend can take up to 50% of chart size. You can set this value to 25-30%. &lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;Change the position and layout style of the legend. By positioning Legend on the bottom in one row we can defiantly save some space in the chart. &lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;Make sure legend text is auto-fitted &lt;STRONG&gt;IsTextAutoFit&lt;/STRONG&gt; and set &lt;STRONG&gt;AutoFitMinFontSize&lt;/STRONG&gt; property of the legend to 5, to reduce the smallest possible font used by auto-fit algorithm. &lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Series Data Points&lt;/STRONG&gt; &lt;BR&gt;Consider removing borders, shadows and visual effects which will make it harder to read small chart. Replace data point labels with tooltips. &lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Chart Titles&lt;/STRONG&gt; &lt;BR&gt;Consider which titles are essential for your chart and make a decision to remove them or to reduce font. This applies to chart, legend and axes titles. &lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Axes Labels&lt;/STRONG&gt; &lt;BR&gt;Axes labels can be too long, font too big or there can be just too many of them. Here what you can do: &lt;BR&gt;
&lt;UL&gt;
&lt;LI&gt;Make sure axes labels auto fitting is enabled &lt;STRONG&gt;IsLabelAutoFit=True&lt;/STRONG&gt;. You can also adjust &lt;STRONG&gt;LabelAutoFitStyle&lt;/STRONG&gt; property to achieve a specific label behavior.&amp;nbsp; &lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;Show numeric values in thousands, millions and so on. You can do that by specifying the labels format string in your code. If you do not know what will be the range of your data, the best approach is to use &lt;STRONG&gt;Customize&lt;/STRONG&gt; event and check &lt;STRONG&gt;Maximum&lt;/STRONG&gt; property of your axis. Here is a sample format string you can use: &lt;STRONG&gt;&lt;BR&gt;
&lt;DIV style="BORDER-RIGHT: #7f9db9 1px solid; BORDER-TOP: #7f9db9 1px solid; FONT-SIZE: 11px; OVERFLOW: auto; BORDER-LEFT: #7f9db9 1px solid; LINE-HEIGHT: 100%! important; BORDER-BOTTOM: #7f9db9 1px solid; FONT-FAMILY: courier new; BACKGROUND-COLOR: white"&gt;
&lt;TABLE class="" style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; MARGIN: 2px 0px; WIDTH: 99%; BORDER-BOTTOM: #eee 0px solid; BORDER-COLLAPSE: collapse; BACKGROUND-COLOR: #fff; BORDER-RIGHT-WIDTH: 0px" cellSpacing=0 cellPadding=0&gt;
&lt;COLGROUP&gt;
&lt;COL style="PADDING-LEFT: 10px; FONT-SIZE: 11px; BORDER-BOTTOM: #f7f7f7 1px solid; FONT-FAMILY: courier new; WHITE-SPACE: nowrap"&gt;&lt;/COLGROUP&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&lt;FONT style="FONT-SIZE: 11px"&gt;Chart1.ChartAreas[0].AxisY.LabelStyle.Format = &lt;/FONT&gt;&lt;FONT style="COLOR: blue"&gt;"$#,,,.B;($#,,,.B);0"&lt;/FONT&gt;&lt;FONT style="FONT-SIZE: 11px"&gt;; &lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;If there are too many labels you can change the &lt;STRONG&gt;Interval&lt;/STRONG&gt; property of the axis or switch to the dynamic interval using the IntervalAutoMode property of the axis. &lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;Truncate categorical strings. Using Customize event you can get access to the automatically generated chart labels and customize them. Code below will truncate all labels larger than 10 characters. Full text of the label will be shown in the tooltip. &lt;BR&gt;&lt;BR&gt;
&lt;DIV style="BORDER-RIGHT: #7f9db9 1px solid; BORDER-TOP: #7f9db9 1px solid; FONT-SIZE: 11px; OVERFLOW: auto; BORDER-LEFT: #7f9db9 1px solid; LINE-HEIGHT: 100%! important; BORDER-BOTTOM: #7f9db9 1px solid; FONT-FAMILY: courier new; BACKGROUND-COLOR: white"&gt;
&lt;TABLE class="" style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; MARGIN: 2px 0px; WIDTH: 99%; BORDER-BOTTOM: #eee 0px solid; BORDER-COLLAPSE: collapse; BACKGROUND-COLOR: #fff; BORDER-RIGHT-WIDTH: 0px" cellSpacing=0 cellPadding=0&gt;
&lt;COLGROUP&gt;
&lt;COL style="PADDING-LEFT: 10px; FONT-SIZE: 11px; BORDER-BOTTOM: #f7f7f7 1px solid; FONT-FAMILY: courier new; WHITE-SPACE: nowrap"&gt;&lt;/COLGROUP&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&lt;FONT style="FONT-SIZE: 11px"&gt;&lt;/FONT&gt;&lt;FONT style="COLOR: blue"&gt;protected&lt;/FONT&gt;&lt;FONT style="FONT-SIZE: 11px"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT style="COLOR: blue"&gt;void&lt;/FONT&gt;&lt;FONT style="FONT-SIZE: 11px"&gt; Chart2_Customize(&lt;/FONT&gt;&lt;FONT style="COLOR: blue"&gt;object&lt;/FONT&gt;&lt;FONT style="FONT-SIZE: 11px"&gt; sender, EventArgs e)&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" style="BACKGROUND-COLOR: #f7f7f7"&gt;{&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT style="COLOR: blue"&gt;foreach&lt;/FONT&gt;&lt;FONT style="FONT-SIZE: 11px"&gt; (ChartArea area &lt;/FONT&gt;&lt;FONT style="COLOR: blue"&gt;in&lt;/FONT&gt;&lt;FONT style="FONT-SIZE: 11px"&gt; ((Chart)sender).ChartAreas)&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" style="BACKGROUND-COLOR: #f7f7f7"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT style="COLOR: blue"&gt;foreach&lt;/FONT&gt;&lt;FONT style="FONT-SIZE: 11px"&gt; (Axis axis &lt;/FONT&gt;&lt;FONT style="COLOR: blue"&gt;in&lt;/FONT&gt;&lt;FONT style="FONT-SIZE: 11px"&gt; area.Axes)&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" style="BACKGROUND-COLOR: #f7f7f7"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT style="COLOR: blue"&gt;if&lt;/FONT&gt;&lt;FONT style="FONT-SIZE: 11px"&gt; (axis.Name.StartsWith(&lt;/FONT&gt;&lt;FONT style="COLOR: blue"&gt;"X"&lt;/FONT&gt;&lt;FONT style="FONT-SIZE: 11px"&gt;))&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" style="BACKGROUND-COLOR: #f7f7f7"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT style="COLOR: blue"&gt;foreach&lt;/FONT&gt;&lt;FONT style="FONT-SIZE: 11px"&gt; (CustomLabel label &lt;/FONT&gt;&lt;FONT style="COLOR: blue"&gt;in&lt;/FONT&gt;&lt;FONT style="FONT-SIZE: 11px"&gt; axis.CustomLabels)&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" style="BACKGROUND-COLOR: #f7f7f7"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT style="COLOR: blue"&gt;if&lt;/FONT&gt;&lt;FONT style="FONT-SIZE: 11px"&gt; (String.IsNullOrEmpty(label.ToolTip))&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" style="BACKGROUND-COLOR: #f7f7f7"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; label.ToolTip = label.Text;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" style="BACKGROUND-COLOR: #f7f7f7"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT style="COLOR: blue"&gt;if&lt;/FONT&gt;&lt;FONT style="FONT-SIZE: 11px"&gt; (label.Text.Length &amp;gt; 10)&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" style="BACKGROUND-COLOR: #f7f7f7"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; label.Text = label.Text.Substring(0, 10) + &lt;/FONT&gt;&lt;FONT style="COLOR: blue"&gt;"..."&lt;/FONT&gt;&lt;FONT style="FONT-SIZE: 11px"&gt;;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" style="BACKGROUND-COLOR: #f7f7f7"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" style="BACKGROUND-COLOR: #f7f7f7"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" style="BACKGROUND-COLOR: #f7f7f7"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;}&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" style="BACKGROUND-COLOR: #f7f7f7"&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;BR&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Visual Border&lt;/STRONG&gt; &lt;BR&gt;If you are using the visual rounded border around the chart consider disabling this feature. &lt;BR&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Hope this was helpful! &lt;/P&gt;
&lt;P&gt;Alex.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9042443" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/alexgor/archive/tags/Chart/default.aspx">Chart</category><category domain="http://blogs.msdn.com/alexgor/archive/tags/Windows+Forms/default.aspx">Windows Forms</category><category domain="http://blogs.msdn.com/alexgor/archive/tags/.NET+Framework/default.aspx">.NET Framework</category><category domain="http://blogs.msdn.com/alexgor/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/alexgor/archive/tags/Microsoft+Chart+Control/default.aspx">Microsoft Chart Control</category></item><item><title>Microsoft Chart control for .NET Framework Released!</title><link>http://blogs.msdn.com/alexgor/archive/2008/10/27/microsoft-chart-control-for-net-framework-released.aspx</link><pubDate>Mon, 27 Oct 2008 06:43:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9017444</guid><dc:creator>alexgor</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/alexgor/comments/9017444.aspx</comments><wfw:commentRss>http://blogs.msdn.com/alexgor/commentrss.aspx?PostID=9017444</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri&gt;I glad to announce the release of&amp;nbsp;Microsoft Chart for .NET Framework 3.5 SP1, which includes the ASP.NET and Windows Forms Chart Controls. Our Data Visualization team in SSRS worked really hard to deliver those controls!&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri&gt;&lt;IMG title="Chart samples" style="WIDTH: 644px; HEIGHT: 128px" height=128 alt="Chart samples" src="http://blogs.msdn.com/blogfiles/alexgor/WindowsLiveWriter/ImagesPlaceHolder_C305/ChartSamples_thumb_1.jpg" width=644 align=absMiddle mce_src="http://blogs.msdn.com/blogfiles/alexgor/WindowsLiveWriter/ImagesPlaceHolder_C305/ChartSamples_thumb_1.jpg"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri&gt;Here is where you can download it:&lt;/FONT&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri&gt;&lt;A class="" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=130F7986-BF49-4FE5-9CA8-910AE6EA442C&amp;amp;displaylang=en" target=_blank mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyId=130F7986-BF49-4FE5-9CA8-910AE6EA442C&amp;amp;displaylang=en"&gt;Microsoft Chart Controls for Microsoft .NET Framework 3.5&lt;/A&gt; – This installs the ASP.NET and Windows Forms Controls.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The assemblies will be installed in the GAC as well as in the “%Program File%\Microsoft Chart Controls\Assemblies” folder.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If you build an application using the controls, your setup and deployment should add MSChart.exe installer as a pre-requisite.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri&gt;&lt;A class="" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=581FF4E3-749F-4454-A5E3-DE4C463143BD&amp;amp;displaylang=en" target=_blank mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyId=581FF4E3-749F-4454-A5E3-DE4C463143BD&amp;amp;displaylang=en"&gt;Microsoft Chart Controls for Microsoft .NET Framework 3.5 Language Pack&lt;/A&gt; – This installs the language pack for the Chart Controls.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It is available in 23 .NET Framework languages.&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri&gt;&lt;A class="" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=1D69CE13-E1E5-4315-825C-F14D33A303E9&amp;amp;displaylang=en" target=_blank mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyId=1D69CE13-E1E5-4315-825C-F14D33A303E9&amp;amp;displaylang=en"&gt;Microsoft Chart Controls Add-on for Microsoft Visual Studio 2008&lt;/A&gt; – This installs the IntelliSense file in English for the controls and also adds the controls to the toolbox for ASP.NET and Windows Forms.&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;FONT face=Calibri&gt;Where to&amp;nbsp;find more information?&lt;/FONT&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&lt;A class="" href="http://social.msdn.microsoft.com/Forums/en-US/MSWinWebChart/threads/" target=_blank mce_href="http://social.msdn.microsoft.com/Forums/en-US/MSWinWebChart/threads/"&gt;Microsoft Chart Forum&lt;/A&gt;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri&gt;&lt;A class="" href="http://code.msdn.microsoft.com/mschart" target=_blank mce_href="http://code.msdn.microsoft.com/mschart"&gt;ASP.NET Samples&lt;/A&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri&gt;&lt;A class="" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=EE8F6F35-B087-4324-9DBA-6DD5E844FD9F&amp;amp;displaylang=en" target=_blank mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyId=EE8F6F35-B087-4324-9DBA-6DD5E844FD9F&amp;amp;displaylang=en"&gt;Documentation&lt;/A&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;Alex.&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9017444" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/alexgor/archive/tags/Chart/default.aspx">Chart</category><category domain="http://blogs.msdn.com/alexgor/archive/tags/Windows+Forms/default.aspx">Windows Forms</category><category domain="http://blogs.msdn.com/alexgor/archive/tags/.NET+Framework/default.aspx">.NET Framework</category><category domain="http://blogs.msdn.com/alexgor/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/alexgor/archive/tags/Microsoft/default.aspx">Microsoft</category></item></channel></rss>