하아찡
WPF - 차트(3) 본문
이전에 추가해야하는 기능 일부 추가완료
- 좌측으로 스크롤시 데이터를 불러오게함
- 해당 부분 차트를 볼때 그부분 위 아래 맥스 민 값으로 최대 최소화를 하는 작업 완료.
추가시 발생한 오류
- 좌측스크롤시 데이터를 불러오다가 제멋대로 튕겨나가는 문제가 발생
작업화면
수정된 코드
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) (1) | 2022.08.05 |
WPF - 차트(2) (0) | 2022.08.04 |
WPF - 차트(1) (0) | 2022.08.03 |
WPF 공부시작 -차트 (0) | 2022.08.03 |