<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      如何在WPF Toolkit Chart基礎上實現步線圖(SetpLineChart)效果

      WPF Toolkit 的Chart組件本身提供了很多統計圖表效果,但里面缺少了步線圖(StepLineChart)效果。在CodePlex中,有一個庫 Visifire 提供了步線圖效果,但我想在Toolkit基礎上實現一個輕量級的簡單的步線效果,畢竟實用簡單免費很重要。

       

      不多說,開始研究Toolkit的源碼;在 System.Windows.Controls.DataVisualization.Charting.LineSeries 類中的 UpdateShapeFromPoints(IEnumerable<Point>points) 方法返回了圖表上最終繪制的各個坐標點,而這個方法是可以被重載的,所以我們就可以在子類中重載他改變最終輸出點的坐標的順序或者可以在原有的坐標點上插入新的點。

       

      我們來研究下步線圖的特性結構;在步線圖中,當前點和下一點的連接線始終是有一個直角線的,經過觀察,我們可以在當前點和下一點之間插入一個點,使這個點的Y值等于當前點的Y值,這個點的X值等于下一點的X值,這樣將這三個點連接起來就繪出了一個直角效果,從而達到了步線圖效果,如下圖:

      最后上代碼,我繼承了LineSeries類創建了一個新類StepLineSeries,并且重載了UpdateShapeFromPoints方法來重新排列和插入了坐標點,如下:


      1 using System.Collections.ObjectModel;
      2  using System.Windows.Controls.DataVisualization.Charting;
      3  using System;
      4  using System.Windows.Media;
      5  using System.Windows;
      6  using System.Collections.Generic;
      7  using System.Linq;
      8
      9  namespace StepLineChart
      10 {
      11
      12 public class StepLineSeries : LineSeries
      13 {
      14 /// <summary>
      15 /// Gets the collection of points that make up the line.
      16 /// </summary>
      17   public PointCollection Points
      18 {
      19 get { return GetValue(PointsProperty) as PointCollection; }
      20 private set { SetValue(PointsProperty, value); }
      21 }
      22
      23 protected override void UpdateShapeFromPoints(IEnumerable<Point> points)
      24 {
      25 if (points.Any())
      26 {
      27 PointCollection pointCollection = new PointCollection();
      28 foreach (Point point in points)
      29 {
      30 pointCollection.Add(point);
      31 }
      32 Points = CreateStepLineSeries(pointCollection);
      33 }
      34 else
      35 {
      36 Points = null;
      37 }
      38 }
      39
      40 /// <summary>
      41 /// 根據已有的坐標點插入新的拐點
      42 /// </summary>
      43 /// <param name="points"></param>
      44 /// <returns></returns>
      45   private PointCollection CreateStepLineSeries(PointCollection points)
      46 {
      47 PointCollection returnPoints = new PointCollection();
      48 for (int i = 0; i < points.Count; i++)
      49 {
      50 Point currentPoint = points[i];
      51 returnPoints.Add(currentPoint);
      52 if (i < points.Count - 1)
      53 {
      54 Point nextPoint = points[i + 1];
      55 returnPoints.Add(new Point(nextPoint.X, currentPoint.Y));
      56 }
      57 }
      58 return returnPoints;
      59 }
      60 }
      61 }
      62

      最終效果圖:

      示例下載:http://cid-51b2fdd068799d15.skydrive.live.com/self.aspx/.Public/StepLineChart.zip

       

      WPF QQ交流群: 113404016  歡迎加入

      posted @ 2010-04-07 09:53  Jarrey  閱讀(5487)  評論(2)    收藏  舉報
      主站蜘蛛池模板: 国产av一区二区三区综合| 亚洲人成人一区二区三区| 四虎库影成人在线播放| 免费人成在线观看网站| 亚洲 自拍 另类小说综合图区| 国产精品一区二区三区日韩| 日韩有码精品中文字幕| 国产精品成人中文字幕| 乱色欧美激惰| 亚洲乱理伦片在线观看中字| 欧美一区二区三区欧美日韩亚洲| 国产欧美一区二区精品仙草咪| 线观看的国产成人av天堂| 少妇xxxxx性开放| 国产亚洲精品AA片在线播放天| 亚洲国产成人综合精品| 国产欧美日韩免费看AⅤ视频| 国产精品七七在线播放| 吉木萨尔县| 天堂av最新版中文在线| 高清无码爆乳潮喷在线观看| 欧洲精品久久久AV无码电影| 亚洲黄色一级片在线观看| 久久99九九精品久久久久蜜桃| 亚洲av色在线播放一区| 中文 在线 日韩 亚洲 欧美 | 滁州市| 无码人妻精品一区二区三区下载| 青青国产揄拍视频| 免费99精品国产人妻自在现线| 免费一区二三区三区蜜桃| 欧美三级a做爰在线观看| 亚洲av精选一区二区| 亚洲av成人无码天堂| 99久久激情国产精品| 粉嫩国产av一区二区三区| 国产日韩久久免费影院| 色综合网天天综合色中文| 亚洲精品男男一区二区| 国产精品免费视频不卡| 久久夜色精品国产噜噜亚洲sv|