簡體   English   中英

C#構建圖表動畫

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM