环境:

系统: Window 7以上;

工具:VS2013及以上。

研发语言及工程:

C# WPF 应用程序

效果:

简介:

不需要调用第三方Dll, 仅仅在WPF中使用贝塞尔曲线,不到500行代码构建自定义的趋势图效果。

原理:

WPF中路径Path的Data值为PathGeometry。如:

  <Path x:Name="PathData1" Stroke="#FFEE4141" StrokeThickness="2"><Path.Fill><LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0" Opacity="0.5"><GradientStop Color="#FFEE4141" Offset="0"/><GradientStop Color="#7F031528" Offset="1"/></LinearGradientBrush></Path.Fill><Path.Data><PathGeometry x:Name="PgData1"/></Path.Data></Path>

PathGeometry.Figures的Value类型为PathFigureCollection;即PathFigure对象的集合,将一系列的Point数据已构建Beizer曲线的形式处理后生成PathFigureCollection对象,最终以PathGeometry对象赋值给Path.Data即可实现如上述所示的效果。

主要处理函数:

private void SetPathData(PathGeometry geo, List<Point> points)
{var myPathFigure = new PathFigure { StartPoint = points.FirstOrDefault() };var myPathSegmentCollection = new PathSegmentCollection();var beizerSegments = BeizerUtils.InterpolatePointWithBeizerCurves(points, false);if (beizerSegments == null || beizerSegments.Count < 1){foreach (var point in points.GetRange(1, points.Count - 1)){var myLineSegment = new LineSegment { Point = point };myPathSegmentCollection.Add(myLineSegment);}}else{for (int i = 0; i < beizerSegments.Count; i++){BeizerCurveSegment beizerCurveSegment = beizerSegments[i];PathSegment segment = new BezierSegment{Point1 = beizerCurveSegment.FirstControlPoint,Point2 = beizerCurveSegment.SecondControlPoint,Point3 = beizerCurveSegment.EndPoint};myPathSegmentCollection.Add(segment);}}myPathFigure.Segments = myPathSegmentCollection;var myPathFigureCollection = new PathFigureCollection { myPathFigure };geo.Figures = myPathFigureCollection;
}

源码下载:微信扫描下方二维码文章末尾获取链接。

WPF实现炫酷趋势图相关推荐

  1. android 炫酷背景,炫酷-背景图垂直循环滚动登录页,Android RecyclerView实现

    炫酷-背景图上下循环滚动登录页,Android RecyclerView实现方法 某站的登录页背景不停循环滚动,和街边的广告箱很像,感觉不错我也心动了.决定高仿一下,参考了几篇文章后就动手了. 实现步 ...

  2. android 炫酷 图片背景,炫酷-背景图垂直循环滚动登录页,Android RecyclerView实现

    炫酷-背景图上下循环滚动登录页,Android RecyclerView实现方法 某站的登录页背景不停循环滚动,和街边的广告箱很像,感觉不错我也心动了.决定高仿一下,参考了几篇文章后就动手了. 实现步 ...

  3. WPF实现炫酷Loading控件

    原文: WPF实现炫酷Loading控件 Win8系统的Loading效果还是很不错的,网上也有人用CSS3等技术实现,研究了一下,并打算用WPF自定义一个Loading控件实现类似的效果,并可以让用 ...

  4. 炫酷插件_PS如何做炫酷动图?推荐5款黑科技PS插件(3D动态|分散粒子|烟雾特效..)帮你轻松实现...

    动态的图片越来越受到人们的欢迎,但普通小白上手却不太简单,今天给大家分享几款黑科技PS插件,神秘浓雾气特效GIF动作插件,分散粒子插件动作,图片变故障特效psd图层样式,图片变3D动态--tikuwa ...

  5. 用python 画炫酷的图并讲解-Python绘制六种可视化图表详解,三维图最炫酷!你觉得呢?...

    可视化图表,有相当多种,但常见的也就下面几种,其他比较复杂一点,大都也是基于如下几种进行组合,变换出来的.对于初学者来说,很容易被这官网上众多的图表类型给吓着了,由于种类太多,几种图表的绘制方法很有可 ...

  6. 100天精通Python(可视化篇)——第79天:matplotlib绘制不同种类炫酷折线图代码实战(网格、趋势、对比、百分比、多条折线、堆积、百分比堆积、多坐标子图、3D折线图)

    文章目录 0. 专栏导读 1. 普通折线图 2. 网格折线图 3. 趋势折线图 4. 对比折线图 5. 百分比折线图 6. 多条折线图 7. 多坐标子图 8. 堆积折线图

  7. wpf MindFusion 炫酷的图形表示,各种CFG,各种Tree 随手拈来

    最近在做android app cfg的项目,最终是要输出一个cfg图的.这里,我搜罗了一番之后,选择了mindfusion的库,应该还有许多其他的库,这个库我觉得使用比较简单,也很直观,支持的语言也 ...

  8. 用python 画炫酷的图并讲解-超炫酷动态排序图、视频,我都帮你用Python实现了...

    先看一下最终效果,这是一张Python生成的GIF,还可以输出MP4格式的视频,到底怎么做的?且听我娓娓道来--数据集.代码.详细做法全部讲清楚. 数据集获取方式 大家可以去国家统计局的网站,搜索想要 ...

  9. 用python 画炫酷的图并讲解-使用Python的turtle画炫酷图形

    原标题:使用Python的turtle画炫酷图形 例子一: import turtle t = turtle.Pen() turtle.bgcolor("black") sides ...

  10. 3000字/16张炫酷动态图,推荐一款好用到爆的Python可视化利器

    一般提及数据可视化,会Python的读者朋友可能第一时间想到的就是matplotlib模块或者是seaborn模块,而谈及绘制动态图表,大家想到的比较多的是Plotly或者是Pyecharts. 今天 ...

最新文章

  1. html修改headicon,index.html
  2. under what circumstances, breakfast is essential
  3. OptaPlanner - 把example运行起来(运行并浅析Cloud balancing)
  4. linux curl 编译命令,linux 编译 curl 出错
  5. Android dp与px的转换
  6. Python编写微信打飞机小游戏(六)
  7. 国内自主研发的游戏引擎一览
  8. 关于PHP的著作文献,著作类参考文献格式
  9. VNC远程桌面安装配置
  10. JS if语句,switch语句——经典例子(水仙花数、瑞年)
  11. Urban Radiance Fields
  12. 以一例教你找到【无水印】【高清】【百度图片】的url
  13. 忆享聚焦|全球云计算市场份额、数字虚拟人、“元宇宙”实体店……近期行业热点速览
  14. 浅谈分布式架构的几种主要开发方式
  15. 对端口Com1的访问被拒绝
  16. python拆分excel文件
  17. 远程部署代码debug在本地调试
  18. apple tv 开发_如何在Apple TV上观看直播电视
  19. rac监听状态:CHECK TIMED OUT
  20. 快压系列软件删除(尽力版)

热门文章

  1. VBA控制Excel行列转换
  2. lan和adsl是什么信号_光纤、以太网、ADSL上网有什么区别?
  3. ggplot2---绘制地图
  4. javascript 的 错误 异常 处理
  5. 与你,预约一个来生的相逢
  6. 工厂模式之抽象工厂模式
  7. 记录一个非常好用的模拟器:夜神模拟器
  8. 迅雷插件会导致IE8假死
  9. 内网渗透之信息收集(更新中)
  10. [生存志] 第99节 白起奋威屠百万