[英]C# Build Chart Animate
我正在嘗試使用C# Chart
對象來構建數據點圖表。 對於數組中的每個數據點,我想在圖表上繪制該點,並在添加點時使條形“增長”。 因此,當我生成1000個隨機數時,我想在圖表上設置1,000個均從零開始的點,它們的值每次增加1。 在嘗試執行此操作時,我注意到圖表只是一次構建所有圖表,而不是添加每個點並“增大”條形圖。 關於如何使條帶動畫化的任何建議? 我知道圖表是一張圖片,所以我不介意每次都重新繪制它,但是我什至不知道要怎么做。
這是我的代碼示例:
for (int i = 1; i <= numberOfRolls; i++)
{
int number = randomNumber();
myNumberDictionary[number] += 1;
foreach (var point in MyChart.Series["MySeries"].Points)
{
point.SetValueXY(Convert.ToInt32(point.XValue), myNumberDictionary[Convert.ToInt32(point.XValue)]);
}
}
有什么建議么?
如果您在UI線程上執行任務,則圖形將等待直到任務完成。 要在添加新點時刷新圖表(UI),您需要在單獨的線程中進行操作。
這是如何實現它的示例。
for (int i = 1; i <= numberOfRolls; i++)
{
int number = randomNumber();
myNumberDictionary[number] += 1;
foreach (var point in MyChart.Series["MySeries"].Points)
{
var startNew = Task.Factory.StartNew(() =>
{
Invoke(new Action(() =>
point.SetValueXY(Convert.ToInt32(point.XValue),
myNumberDictionary[Convert.ToInt32(point.XValue)]);
});
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.