안녕하세요
그레이프시티입니다.
문의하신 Financial Chart의 색상을 변경하는 샘플 코드와 샘플 프로젝트를 공유드립니다.
아래의 샘플을 참고하시면 원하시는 Chart를 구현하실 수 있으실 겁니다.
아래의 샘플코드는 FinancialChart.Series의 SymbolRendering 이벤트에서 테두리를 투명하게 설정하고 데이터 항목의 open-close 값에 따라 채우는 색상을 설정하는 샘플코드입니다.
private void Form1_SymbolRendering(object sender, C1.Win.Chart.RenderSymbolEventArgs e)
{
var itm = e.Item as HLOC;
e.Engine.SetStroke(Brushes.Transparent);
if (itm != null)
{
if(itm.open < itm.close)
{
e.Engine.SetFill(Brushes.Red);
}
else
{
e.Engine.SetFill(Brushes.Blue);
}
}
}
아래의 샘플코드는 검은 선을 그리기 위해 FinancialChart.Series의 SymbolRendered 이벤트를 처리하는 샘플코드입니다.
private void Form1_SymbolRendered(object sender, C1.Win.Chart.RenderSymbolEventArgs e)
{
var itm = e.Item as HLOC;
if (itm != null)
{
e.Engine.SetStroke(Brushes.Black);
e.Engine.SetStrokeThickness(1.5);
PointF ptDownInit, ptDownFin, ptUpInit, ptUpFin;
if (itm.open < itm.close)
{
ptDownInit = financialChart1.DataToPoint(new PointF(e.Point.X, (float)itm.low));
ptDownFin = financialChart1.DataToPoint(new PointF(e.Point.X, (float)itm.open));
ptUpInit = financialChart1.DataToPoint(new PointF(e.Point.X, (float)itm.close));
ptUpFin = financialChart1.DataToPoint(new PointF(e.Point.X, (float)itm.high));
}
else
{
ptUpInit = financialChart1.DataToPoint(new PointF(e.Point.X, (float)itm.high));
ptUpFin = financialChart1.DataToPoint(new PointF(e.Point.X, (float)itm.open));
ptDownInit = financialChart1.DataToPoint(new PointF(e.Point.X, (float)itm.close));
ptDownFin = financialChart1.DataToPoint(new PointF(e.Point.X, (float)itm.low));
}
e.Engine.DrawLine(e.Point.X, ptDownInit.Y, e.Point.X, ptDownFin.Y);
e.Engine.DrawLine(e.Point.X, ptUpInit.Y, e.Point.X, ptUpFin.Y);
}
}
추가로 궁금하신 사항은 문의해 주시기 바랍니다.
감사합니다.
그레이프시티 드림.