Избегание тонкого SeriesChartType
Используя C# и.Net 4 (я также пробовал 4.5.1), я хочу нарисовать различные области на графике, представляющие различные временные интервалы, некоторые короткие, некоторые длинные. Для очень коротких промежутков времени (менее пикселя?) Некоторые (но не все) исчезают. Различные из них исчезают, так как диаграмма немного изменяется, как показано ниже.
Я не вижу ни одного шаблона, чтобы предсказать те, которые не нарисованы - см фрагмент кода ниже...
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 );
}
}
}
Кто-нибудь знает, как этого избежать, не увеличивая как можно больше областей? Кто-нибудь знает, могу ли я использовать события Paint или PrePaint для настройки чертежа?
Заранее спасибо.