하아찡

WPF - 차트(3) 본문

C#/코인프로그램 - 진행상황

WPF - 차트(3)

하아찡 2022. 8. 4. 20:38

이전에 추가해야하는 기능 일부 추가완료

- 좌측으로 스크롤시 데이터를 불러오게함

- 해당 부분 차트를 볼때 그부분 위 아래 맥스 민 값으로 최대 최소화를 하는 작업 완료.

 

추가시 발생한 오류

- 좌측스크롤시 데이터를 불러오다가 제멋대로 튕겨나가는 문제가 발생

 

작업화면

수정된 코드

private void MouseMove(object sender, MouseEventArgs e)
        {
            if (e.LeftButton == MouseButtonState.Pressed && sender == movingObject)
            {
                //감도 0.5값이 적당하다고봄.
                double newLeft = (e.GetPosition(wPanel).X - firstXPos) * 0.5;
                //double newTop = (e.GetPosition(wPanel).Y - firstYPos) * 0.3;

                //Margin Left값을줘서 X축을 기준으로 이동하는것처럼 보이게함
                Thickness newMargin = wPanel.Margin;
                newMargin.Left += newLeft;
                
                //newMargin.Top += newTop;

                
                firstXPos = e.GetPosition(wPanel).X;
                //firstYPos = e.GetPosition(wPanel).Y;
                wPanel.Margin = newMargin;

                //데이터 로드부분
                if (newMargin.Left > 0 && Coin != null)
                {
                    DrawBars();
                    //왜 로드후 끊어지는 모션이 나오는지 잘모르겠음 일단 킵
                    newMargin.Left = -(section * ShowBars);
                    wPanel.Margin = newMargin;

                }

                


                if(Coin != null)
                {
                    int startpoint = 0;
                    int endpoint = (int)((grid.ActualWidth - GridRight) / section);
                    if (wPanel.Margin.Left < 0)
                    {
                        startpoint = (int)(Math.Abs(wPanel.Margin.Left) / section);
                    }
                    endpoint += startpoint;

                    //마지막 값이 저장된 틱보다 클경우 
                    if (endpoint > keeptm.Count)
                    {
                        endpoint = keeptm.Count;
                    }
                    GetViewChart(startpoint,endpoint);
                }
            }
        }

        private void GetViewChart(int StartPoint, int EndPoint)
        {
            //그냥 초기화
            griddata = new GridData();
            //현재 틱들 최대값과 최소값을 구함
            for (int i = StartPoint; i < EndPoint; i++)
            {
                griddata.SetMax(keeptm[i].high_price);
                griddata.SetMin(keeptm[i].low_price);

                //값 확인을위해 라벨을 추가하여 맥스값과 최소값을 확인하는중
                label1.Content = griddata.Max;
                label2.Content = griddata.Min;
            }

            //값을 다시 설정했으니 다시 그림
            SetTickPositions();
        }

 

남은작업

- 휠을 돌릴시 확대하는 기능(ShowBars변수는 해당화면에 보여주는 틱개수를 저장하는 아이여가지고 이 변수값을 휠돌릴때 변경시키면 가능할듯)

- 분봉 버튼 추가(XAML Grid를 조금 손봐서 버튼을 넣어줄 공간을 만들어줘야할듯)

 

추가작업

- 우측 및 하단부분에 해당 틱들 시간 기준점을 출력해줄걸 만들어야할듯.

 

남은작업 및 추가작업을 마무리하면 호가창을 따로 띄워 매수 매도 기능을 추가 할 예정

반응형

'C# > 코인프로그램 - 진행상황' 카테고리의 다른 글

WPF - 업비트 중간 진행사항  (0) 2022.08.05
WPF - 차트(4)  (0) 2022.08.05
WPF - 차트(2)  (0) 2022.08.04
WPF - 차트(1)  (0) 2022.08.03
WPF 공부시작 -차트  (0) 2022.08.03