国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
[轉(zhuǎn)載]WPF中的Chart畫圖的功能。

[轉(zhuǎn)載]WPF中的Chart畫圖的功能。

(2012-05-18 15:01:02)
標簽:

轉(zhuǎn)載



引用DLL如圖片。。

---------------------------后臺代碼為:-----------------------

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Windows.Controls.DataVisualization.Charting;
using System.Data;
using System.Collections;

namespace RibbonPad
{
    ///<summary>
    ///WPF_ToolKit.xaml 的交互邏輯
    ///</summary>
    publicpartial class WPF_ToolKit : Window
    {
       public WPF_ToolKit()
       {
           InitializeComponent();
       }

       private void Window_Loaded(object sender, RoutedEventArgs e)
       {
           ((ColumnSeries)this.mcChart.Series[0]).ItemsSource = newKeyValuePair<int, int>[]{
               newKeyValuePair<int,int>(1,400),
               newKeyValuePair<int,int>(2,200),
               newKeyValuePair<int,int>(3,300),
               newKeyValuePair<int,int>(4,320),
               newKeyValuePair<int,int>(5,150)
           };
           ((AreaSeries)this.mcChart.Series[1]).ItemsSource = newKeyValuePair<int, int>[]{
               newKeyValuePair<int,int>(1,400),
               newKeyValuePair<int,int>(2,200),
               newKeyValuePair<int,int>(3,300),
               newKeyValuePair<int,int>(4,320),
               newKeyValuePair<int,int>(5,150)
           };

           //------------------------------------------------------
           DataTable dt = new DataTable();
           dt.Columns.Add("1");
           dt.Columns.Add("2");
           dt.Columns.Add("3");
           dt.Columns.Add("4");
           dt.Columns.Add("5");
           dt.Columns.Add("6");
           Random rand = new Random();
           for (int i = 0; i < 10; i++)
           {
               DataRow newRow = dt.NewRow();
               for (int j = 0; j < dt.Columns.Count; j++)
               {
                   newRow[j] = rand.Next(300);
               }
               dt.Rows.Add(newRow);
           }
           Chart chart = new CreateToolKit(300, 250).GetNewChart(dt,GraphEnum.Area);
           Canvas.SetLeft(chart, 200);
           Canvas.SetTop(chart, 200);
           this.CanChart.Children.Add(chart);
       }

       /// <summary>
       /// 繪制圖形枚舉。
       /// </summary>
       public enum GraphEnum
       {
           /// <summary>
           /// 區(qū)域圖形。
           /// </summary>
           Area,
           /// <summary>
           /// 條形圖形。
           /// </summary>
           Bar,
           /// <summary>
           /// 氣泡圖形。
           /// </summary>
           Bubble,
           /// <summary>
           /// 柱圖形。
           /// </summary>
           Column,
           /// <summary>
           /// 線圖形。
           /// </summary>
           Line,
           /// <summary>
           /// 餅圖形。
           /// </summary>
           Pie,
           /// <summary>
           /// 散點圖形
           /// </summary>
           Scatter,
       }

       /// <summary>
       /// DataGrid數(shù)據(jù)生成圖形信息操作類。
       /// </summary>
       public class CreateToolKit
       {
           /// <summary>
           /// Chart的基本寬度。
           /// </summary>
           private double KitWitdth = 0;
           /// <summary>
           /// Chart的基本高度。
           /// </summary>
           private double KitHeight = 0;
           /// <summary>
           /// 繪制圖表類。
           /// </summary>
           public Chart newChart = null;

           /// <summary>
           /// 設置圖形表的基本屬性內(nèi)容。
           /// </summary>
           /// <paramname="width"></param>
           /// <paramname="height"></param>
           public CreateToolKit(double width, double height)
           {
               this.KitHeight = height;
               this.KitWitdth = width;
               this.newChart = new Chart();
               this.newChart.Width = this.KitWitdth;
               this.newChart.Height = this.KitHeight;
               this.newChart.LegendTitle = null;
               this.newChart.Background = Brushes.Azure;
           }

           #region================實現(xiàn)方法=====================
           /// <summary>
           /// 生成指定圖形的表。
           /// </summary>
           /// <paramname="table">表數(shù)據(jù)。</param>
           /// <paramname="graph">繪制圖形類型。</param>
           ///<returns></returns>
           public Chart GetNewChart(DataTable table, GraphEnum graph)
           {
               try
               {
                   switch (graph)
                   {
                       case GraphEnum.Area:
                           newChart.Series.Add(SetDrawData<AreaSeries>(table));
                           break;
                       case GraphEnum.Bar:
                           newChart.Series.Add(SetDrawData<BarSeries>(table));
                           break;
                       case GraphEnum.Bubble:
                           newChart.Series.Add(SetDrawData<BubbleSeries>(table));
                           break;
                       case GraphEnum.Column:
                           newChart.Series.Add(SetDrawData<ColumnSeries>(table));
                           break;
                       case GraphEnum.Line:
                           newChart.Series.Add(SetDrawData<LineSeries>(table));
                           break;
                       case GraphEnum.Pie:
                           newChart.Series.Add(SetDrawData<PieSeries>(table));
                           break;
                       case GraphEnum.Scatter:
                           newChart.Series.Add(SetDrawData<ScatterSeries>(table));
                           break;
                   }
                   return newChart;
               }
               catch (Exception TableEx)
               {
                   //錯誤是計算的數(shù)值有非數(shù)字時,就可能出錯,返回空值!    
                   return null;
               }
           }
           /// <summary>
           /// 對圖形進行值的添加。
           /// </summary>
           /// <paramname="table">數(shù)據(jù)源。</param>
           ///<returns>圖形對象。</returns>
           private T SetDrawData<T>(DataTabletable) where T : new()
           {
               Binding KeyBind = new Binding("Key");
               Binding ValueBind = new Binding("Value");
               T ret = new T();
               Type obj = ret.GetType();
               obj.GetProperty("Title").SetValue(ret, "Example", null);
               obj.GetProperty("IndependentValueBinding").SetValue(ret, KeyBind,null);
               obj.GetProperty("DependentValueBinding").SetValue(ret, ValueBind,null);
               obj.GetProperty("ItemsSource").SetValue(ret, GetTableData(table),null);
               return ret;
           }
           /// <summary>
           /// 對數(shù)據(jù)進行標準轉(zhuǎn)換,轉(zhuǎn)成圖形能加載的形式。
           /// 【DataTable轉(zhuǎn)換成Dictionary】,是按列的統(tǒng)計來添加數(shù)據(jù)。
           /// </summary>
           /// <paramname="table">DataTable數(shù)據(jù)源。</param>
           ///<returns></returns>
           private Dictionary<int, double>GetTableData(DataTable table)
           {
               Dictionary<int, double> ReDict = newDictionary<int, double>();
               int i = 1;
               foreach (DataColumn col in table.Columns)
               {
                   double tempDouble = 0;
                   foreach (DataRow row in table.Rows)
                   {
                       if (!string.IsNullOrEmpty(row[col.ColumnName].ToString()))
                           tempDouble += Convert.ToDouble(row[col.ColumnName]);
                   }
                   ReDict.Add(i, tempDouble);
                   i += 1;
               }
               return ReDict;
           }
           #endregion
       }
    }
}
----------------------------------XAML代碼為:----------------------------------------------------

<Window x:Class="RibbonPad.WPF_ToolKit"
   xmlns="   <Canvas Name="CanChart">
       <Grid Name="GridChart">
           <dc:Chart Name="mcChart" Width="300" Height="250"Background="LightSteelBlue">
               <dc:Chart.Series>
                   <dc:ColumnSeries Title="Column"IndependentValueBinding="{Binding Path=Key}"DependentValueBinding="{Binding Path=Value}"/>
                   <dc:AreaSeries Title="Column"IndependentValueBinding="{Binding Path=Key}"DependentValueBinding="{Binding Path=Value}"/>
               </dc:Chart.Series>
           </dc:Chart>
       </Grid>
   </Canvas>
</Window>

打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
C# chart控件多個ChartArea
WPF開發(fā)學生信息管理系統(tǒng)【W(wǎng)PF+Prism+MAH+WebApi】(二)
《Head First C#》外星人入侵WPF編寫源碼
C# WPF如何關閉通過父窗口打開的所有子窗口
WPF 下無邊框窗體改變大小和移動
WinForm控件與WPF控件的交互
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服