Silverlight 使用Visifire Chart 展示統計圖

visifire是一款基於WPF&silverlight的動畫圖表控件,支持數據綁定、數據鑽取以及實時更新等功能特點。重要一點是能展現特別炫的效果。下面簡單介紹一下 他的簡單使用

首先 下載 Visifire 的dll 加載到工具箱中,會發現增加很多控件



拖放chart 到XAML 文件中 

<my:Chart  x:Name="mychart"   />

後臺加載的代碼如下

首先要創建數據源,在這裏我要展示北京市各個區義工組織的個數,定義一個類,

 

  public class NameandCount
    {
        string name;

        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        int count;

        public int Count
        {
            get { return count; }
            set { count = value; }
        }
    }
然後 構造一個List<NameCount> 作爲數據源 名字爲 list

 Title title = new Title();
            title.Text = "義工組織活動地點個數分區統計";
            mychart.Titles.Add(title);


            //統計項


            DataSeries ds = new DataSeries();
            //圖表類型類型
            ds.RenderAs = RenderAs.StackedColumn;
            //顯示標註
            ds.LabelStyle = LabelStyles.OutSide;
            ds.LabelEnabled = true;
            //遍歷添加統計結果
            foreach (NameandCount N in list)
            {
                ds.DataPoints.Add(new DataPoint() { AxisXLabel = N.Name, YValue =N.Count });
            }


            foreach(DataPoint dt in ds.DataPoints)
            {
                dt.MouseMove+=new EventHandler<MouseEventArgs>(dt_MouseMove);
            }
            mychart.Series.Add(ds);


Ok 看效果如何




其中ds.RenderAs = RenderAs.StackedColumn; 可以修改樣式, 如下

ds.RenderAs = RenderAs.Bar


ds.RenderAs = RenderAs.Bar   mychart.View3D = true;


ds.RenderAs = RenderAs.StackedColumn   mychart.View3D = true;


 ds.RenderAs = RenderAs.Doughnut; mychart.View3D = true;


ds.RenderAs = RenderAs.Bubble;


ds.RenderAs = RenderAs.Pie;



 ds.RenderAs = RenderAs.Point;



此外還支持事件 當我鼠標移動到某一點是提示我點擊的是哪一個記錄 每一個記錄叫 爲一個DataPoint實例,通過點擊的Sender可以獲得

  

foreach(DataPoint dt in ds.DataPoints)
            {
                dt.MouseMove+=new EventHandler<MouseEventArgs>(dt_MouseMove);
            }


        void dt_MouseMove(object sender, MouseEventArgs e)
        {
           
           

            MessageBox.Show((sender as DataPoint).AxisXLabel);
        }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章