! 제품 버전을 정확하게 입력해 주세요.
제품 버전이 정확하게 기재되어 있지 않은 경우,
최신 버전을 기준으로 안내 드리므로
더욱 빠르고 명확한 안내를 위해
제품 버전을 정확하게 입력해 주세요!

FinancialChart 캔들차트 색상 관련 > Q&A | 토론

본문 바로가기

ComponentOne

Q&A | 토론

WinForms윈폼 FinancialChart 캔들차트 색상 관련

페이지 정보

작성자 move 작성일 2023-09-20 18:44 조회 202회 댓글 0건
제품 버전 : ComponentOne 4.5.2
컨트롤 이름 : FinancialChart

본문

안녕하세요.


FinancialChart 로 개발중에 질문이 있어 글 남깁니다.


캔들차트 색상을 아래 두번째 사진처럼 나타내고싶은데요.


가능하다면 샘플 프로젝트를 부탁드립니다.


감사합니다.



 

  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

1 답변

WinForms윈폼 Re: FinancialChart 캔들차트 색상 관련

추천0 이 글을 추천하셨습니다 비추천0

페이지 정보

작성자 GCK싸이먼 작성일 2023-09-27 13:55 댓글 0건

본문

첨부파일

안녕하세요

그레이프시티입니다.


문의하신 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);
    }
}


추가로 궁금하신 사항은 문의해 주시기 바랍니다.

감사합니다.

그레이프시티 드림. 

댓글목록

등록된 댓글이 없습니다.

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@mescius.com | 전화 : 1670-0583 | 경기도 과천시 과천대로 7길 33, 디테크타워 B동 1107호 메시어스(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 ⓒ 2024 MESCIUS inc. All rights reserved.