0
我有我想要呈現的二維線點到點的datalist = 62,76,80,72,71,75,77。在我的Wpf應用程序中,我有一個高度爲173和寬度爲455的畫布。在畫布上畫一條二維線
我該如何去解決這個問題,並通過我的datalist繪製一條線並使用幾乎整個畫布的高度?因爲現在數據只是在畫布底部的一條線上表示,而不是使用(並且因此給出數據的不良表示)整個畫布的高度。 它也將是很好的把它放在箱子的中心...
我有我想要呈現的二維線點到點的datalist = 62,76,80,72,71,75,77。在我的Wpf應用程序中,我有一個高度爲173和寬度爲455的畫布。在畫布上畫一條二維線
我該如何去解決這個問題,並通過我的datalist繪製一條線並使用幾乎整個畫布的高度?因爲現在數據只是在畫布底部的一條線上表示,而不是使用(並且因此給出數據的不良表示)整個畫布的高度。 它也將是很好的把它放在箱子的中心...
你需要改變你的datalist來表示畫布的整個高度。有兩種明顯的方法:
1)將畫布的高度除以數據列表中的最大值。通過這個乘以數據列表中的所有值並綁定到這些新的數據點。
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的畫布,一切都保持空白。 – 2010-05-19 15:04:52
@Adrian好的趕上,我已經更新了我的回答 – 2010-05-19 15:09:57
你修好了我覺得 – 2010-05-19 15:10:53