캔버스의 전체 높이를 나타내려면 데이터 목록을 변환해야합니다. 이 작업을 수행하는 두 가지 확실한 방법이 있습니다.
1) 데이터 목록의 최대 값으로 캔버스의 높이를 나눕니다. 데이터리스트의 모든 값에 this를 곱하고이 새로운 데이터 포인트에 바인드하십시오.
2) 당신이 지금하고있는 규모가 옵션에서 승수 당신은 전체 캔버스가 사용되기 때문에 지금의 중앙 필요가 없습니다 1.
하나의 방식을 변화 적용으로 줄을 추가합니다. 나는 당신이 실제로 아래 아드리안의 코멘트 "캔버스의 거의 전체 높이"라고 검토를 참조
내가 하한을 생각하지 않았다 올바른지. 다음은 좀 더 나은 의사 코드입니다.
int border = 20; //How much of the canvas you *don't* want to use
int graphHeight = Canvas.Height - border;
int maxValue = DataList.GetMaxValue();
int minValue = DataList.GetMinValue();
double multiplier = graphHeight/(maxValue - minValue);
foreach(int value in DataList)
{
int distanceFromBottom = value - minValue;
double proportionalValue = distanceFromBottom * multiplier;
double newValue = proportionalValue + (border/2) // move it up to the middle of the canvas
}
newValues를 새 DataList에 저장하고 바인딩합니다.
둘 중 하나는 62 * 173/77 ~ 173의 캔버스 만 사용하고 나머지는 모두 공백으로 남겨 두어야합니다. –
@Adrian 좋은 캐치, 내 대답 –
을 수정했습니다. 내 생각에 –