lines 1204:
protected override void OnRender(ChartControl chartControl, ChartScale chartScale)
1220:
DrawRows(chartControl, chartScale, backBrush, outBrush, textBrush, upBrush, dnBrush);
and 1257:
private void DrawRows(ChartControl chartControl, ChartScale chartScale, SharpDX.Direct2D1.Brush backBrush, SharpDX.Direct2D1.Brush outlineBrush, SharpDX.Direct2D1.Brush textBrush, SharpDX.Direct2D1.Brush upBrush, SharpDX.Direct2D1.Brush dnBrush)
SharpDX PlotOneBrush(chartControl, chartScale); Callable method in/from OnRender():
protected override void OnRender(ChartControl chartControl, ChartScale chartScale)
{
base.OnRender(chartControl, chartScale);
SharpDX.Direct2D1.AntialiasMode oldAntialiasMode = RenderTarget.AntialiasMode;
RenderTarget.AntialiasMode = SharpDX.Direct2D1.AntialiasMode.PerPrimitive;
PlotOneBrush(chartControl, chartScale);
RenderTarget.AntialiasMode = oldAntialiasMode;
}
private void PlotOneBrush(ChartControl chartControl, ChartScale chartScale)
{
SharpDX.Direct2D1.Brush plot1BrushDx;
plot1BrushDx = plot1Brush.ToDxBrush(RenderTarget);
Vector2 point0 = new Vector2();
Vector2 point1 = new Vector2();
Vector2 point2 = new Vector2();
Vector2 point3 = new Vector2();
for (int barIndex = ChartBars.FromIndex; barIndex <= ChartBars.ToIndex; barIndex++)
{
double plotValue0 = 0, plotValue1 = 0;
float valY0, xHeight0, x0, barWidth0, xWidth0,
valY1, xHeight1, x1, barWidth1, xWidth1,
outlineWidth;
plotValue0 = MyPlot1.GetValueAt(barIndex);
valY0 = chartScale.GetYByValue(plotValue0);
x0 = chartControl.GetXByBarIndex(ChartBars, barIndex);
barWidth0 = (float)chartControl.BarWidth;
outlineWidth = ChartBars.Properties.ChartStyle.Stroke2.Width; // 1.0f;
point0.X = x0 - barWidth0 - outlineWidth;
point0.Y = valY0;
point1.X = x0 + barWidth0 + outlineWidth;
point1.Y = valY0;
xHeight0 = 10.0f;
xWidth0 = (point1.X - point0.X);
bool Cond0 = ( plotValue1 != double.NaN && plotValue0 != double.NaN
&& ( plotValue1 != plotValue0 ) || (plotValue1 == plotValue0 ));
if ( Cond0 )
{
RenderTarget.DrawLine(point0, point1, plot1BrushDx, 4);
}
plotValue1 = MyPlot1.GetValueAt(barIndex-1);
valY1 = chartScale.GetYByValue(plotValue1);
x1 = chartControl.GetXByBarIndex(ChartBars, barIndex-1);
point2.X = x1 + barWidth0 - outlineWidth;
point2.Y = valY1;
point3.X = x0 - barWidth0 + outlineWidth;
point3.Y = valY1;
xHeight1 = 10.0f;
xWidth1 = (point3.X - point2.X);
bool Cond1 = ( plotValue1 != double.NaN && plotValue0 != double.NaN
&& plotValue1 == plotValue0 && !( plotValue1 != plotValue0 ));
if ( Cond1 )
{
RenderTarget.DrawLine(point2, point3, plot1BrushDx, 4);
}
}
}

Comment