Using C# and .Net 4 (I've also tried 4.5.1) I want to draw various areas on a chart representing different timespans, some short, some long. For very short timespans (less than a pixel?) some (but not all) disappear. Different ones disappear as the chart is resized slightly as shown below.
I can't see any pattern to predict the ones that aren't drawn - see code fragment below...
using System;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;
namespace ChartTest
{
public partial class Form1 : Form
{
public Form1( )
{
InitializeComponent( );
var series = new Series( )
{
ChartType = SeriesChartType.Area,
MarkerStyle = MarkerStyle.None,
XValueType = ChartValueType.DateTime,
YAxisType = AxisType.Primary,
};
AddLine( DateTime.Parse( "17/6/2015" ), series );
AddLine( DateTime.Parse( "18/6/2015" ), series );
AddLine( DateTime.Parse( "19/6/2015" ), series );
AddLine( DateTime.Parse( "20/6/2015" ), series );
AddLine( DateTime.Parse( "21/6/2015" ), series );
chart1.Series.Add( series );
}
private static void AddLine( DateTime dateTime, Series series )
{
var endTime = dateTime.AddMinutes( 2 );
series.Points.AddXY( dateTime, 0 );
series.Points.AddXY( dateTime, 1 );
series.Points.AddXY( endTime, 1 );
series.Points.AddXY( endTime, 0 );
}
}
}
Anyone know how to avoid this without making the areas arbitrarily wide? Anyone know if I could use the Paint or PrePaint events to adjust the drawing?
Thanks in advance.