Sparrow.Chart.Wpf控件的動態調用


最近需要在Wpf程序中顯示曲線,感覺Sparrow.Chart.Wpf控件不錯(http://sparrowtoolkit.codeplex.com/),完全開源的一個控件支持,可以通過nuget下載。源代碼中的例子完全采用MVVM方式實現,我項目中需求是完全通過代碼創建控件,通過代碼綁定數據,因此經過簡單,實現了一個基本的例子:

首先頂一個CPU類(來自sparrow源代碼):

public class CPU
    {
        private DateTime time;
        public DateTime Time
        {
            get { return time; }
            set { time = value; }
        }

        private double percentage;
        public double Percentage
        {
            get { return percentage; }
            set { percentage = value; }
        }

        private double memoryUsage;
        public double MemoryUsage
        {
            get { return memoryUsage; }
            set { memoryUsage = value; }
        }

        public CPU()
        {
        }
        public CPU(DateTime time, double percentage, double memoryUsage)
        {
            this.Time = time;
            this.Percentage = percentage;
            this.MemoryUsage = memoryUsage;
        }

然后通過一個函數產生隨機數據:

private void CreateSomeData()
        {
            DateTime dt = DateTime.Now;
            System.Random rad=new Random(System.DateTime.Now.Millisecond); 
            for(int n=0;n<100;n++)
            {
                dt=dt.AddSeconds(1);
               
                CPU cpu= new CPU(dt,rad.Next(100),51);
                m_listCpu.Add(cpu);
            }
        }

最后通過代碼動態創建chart控件:

CreateSomeData();
            //窗體加載事件
            SparrowChart chart = new SparrowChart();
            DateTimeXAxis xaxis = new DateTimeXAxis();
            xaxis.Interval = "0:0:1";
            chart.XAxis = xaxis;
            xaxis.Visibility = Visibility.Collapsed;

            LinearYAxis yaxis = new LinearYAxis();
            chart.YAxis = yaxis;
            yaxis.MinValue = 0;
            yaxis.MaxValue = 100;

            LineSeries ser = new LineSeries();
            chart.Series.Add(ser);
            ser.XPath = "Time";
            ser.YPath = "Percentage";
            ser.PointsSource = m_listCpu;

            rootLayout.Children.Add(chart);

 

程序運行效果圖如下:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM