Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to draw text onto an empty MS Chart ChartArea?

I'm using Microsoft's Chart control to plot some series, but if I have no data, I want to display "No Data Series" on the area where the plot would be.

Like this:

similarpic http://blogs.telerik.com/Libraries/MetaBlogLib/WindowsLiveWriter-CreatingabasicChart_D20D-image_thumb.sflb

I have a hunch it has something to do with manually drawing some text onto the image, but I don't know where to start. Anyone?

like image 912
Jeff Meatball Yang Avatar asked Nov 05 '22 18:11

Jeff Meatball Yang


1 Answers

You can create a post-paint event handler where you can paint your stuff:

mychart.PostPaint += new EventHandler<ChartPaintEventArgs>(PostPaintEventHandler);
...
static void PostPaintEventHandler(object sender, ChartPaintEventArgs e)
{
  //sender here is the chart... you can use that too.
  //use e.ChartGraphics object to paint something
  e.ChartGraphics.DrawString(...);
}

Use freeware ILSpy to look inside the MSChart dll. There are several overloads of Graphics.DrawString method. Use the one which fits best for you.

Hope this helps.

like image 138
scrat.squirrel Avatar answered Dec 11 '22 19:12

scrat.squirrel