Вам нужно будет преобразовать ваш информатор, чтобы представить всю высоту холста. Есть два очевидных способа сделать это:
1) Разделите высоту холста на наибольшее значение в вашем информаторе. Умножьте все значения в datalist на это и привяжите к этим новым точкам данных.
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 Хороший улов, я обновил свой ответ –
исправил его. Думаю, –