WPF实现炫酷趋势图
环境:
系统: 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实现炫酷趋势图相关推荐
- android 炫酷背景,炫酷-背景图垂直循环滚动登录页,Android RecyclerView实现
炫酷-背景图上下循环滚动登录页,Android RecyclerView实现方法 某站的登录页背景不停循环滚动,和街边的广告箱很像,感觉不错我也心动了.决定高仿一下,参考了几篇文章后就动手了. 实现步 ...
- android 炫酷 图片背景,炫酷-背景图垂直循环滚动登录页,Android RecyclerView实现
炫酷-背景图上下循环滚动登录页,Android RecyclerView实现方法 某站的登录页背景不停循环滚动,和街边的广告箱很像,感觉不错我也心动了.决定高仿一下,参考了几篇文章后就动手了. 实现步 ...
- WPF实现炫酷Loading控件
原文: WPF实现炫酷Loading控件 Win8系统的Loading效果还是很不错的,网上也有人用CSS3等技术实现,研究了一下,并打算用WPF自定义一个Loading控件实现类似的效果,并可以让用 ...
- 炫酷插件_PS如何做炫酷动图?推荐5款黑科技PS插件(3D动态|分散粒子|烟雾特效..)帮你轻松实现...
动态的图片越来越受到人们的欢迎,但普通小白上手却不太简单,今天给大家分享几款黑科技PS插件,神秘浓雾气特效GIF动作插件,分散粒子插件动作,图片变故障特效psd图层样式,图片变3D动态--tikuwa ...
- 用python 画炫酷的图并讲解-Python绘制六种可视化图表详解,三维图最炫酷!你觉得呢?...
可视化图表,有相当多种,但常见的也就下面几种,其他比较复杂一点,大都也是基于如下几种进行组合,变换出来的.对于初学者来说,很容易被这官网上众多的图表类型给吓着了,由于种类太多,几种图表的绘制方法很有可 ...
- 100天精通Python(可视化篇)——第79天:matplotlib绘制不同种类炫酷折线图代码实战(网格、趋势、对比、百分比、多条折线、堆积、百分比堆积、多坐标子图、3D折线图)
文章目录 0. 专栏导读 1. 普通折线图 2. 网格折线图 3. 趋势折线图 4. 对比折线图 5. 百分比折线图 6. 多条折线图 7. 多坐标子图 8. 堆积折线图
- wpf MindFusion 炫酷的图形表示,各种CFG,各种Tree 随手拈来
最近在做android app cfg的项目,最终是要输出一个cfg图的.这里,我搜罗了一番之后,选择了mindfusion的库,应该还有许多其他的库,这个库我觉得使用比较简单,也很直观,支持的语言也 ...
- 用python 画炫酷的图并讲解-超炫酷动态排序图、视频,我都帮你用Python实现了...
先看一下最终效果,这是一张Python生成的GIF,还可以输出MP4格式的视频,到底怎么做的?且听我娓娓道来--数据集.代码.详细做法全部讲清楚. 数据集获取方式 大家可以去国家统计局的网站,搜索想要 ...
- 用python 画炫酷的图并讲解-使用Python的turtle画炫酷图形
原标题:使用Python的turtle画炫酷图形 例子一: import turtle t = turtle.Pen() turtle.bgcolor("black") sides ...
- 3000字/16张炫酷动态图,推荐一款好用到爆的Python可视化利器
一般提及数据可视化,会Python的读者朋友可能第一时间想到的就是matplotlib模块或者是seaborn模块,而谈及绘制动态图表,大家想到的比较多的是Plotly或者是Pyecharts. 今天 ...
最新文章
- html修改headicon,index.html
- under what circumstances, breakfast is essential
- OptaPlanner - 把example运行起来(运行并浅析Cloud balancing)
- linux curl 编译命令,linux 编译 curl 出错
- Android dp与px的转换
- Python编写微信打飞机小游戏(六)
- 国内自主研发的游戏引擎一览
- 关于PHP的著作文献,著作类参考文献格式
- VNC远程桌面安装配置
- JS if语句,switch语句——经典例子(水仙花数、瑞年)
- Urban Radiance Fields
- 以一例教你找到【无水印】【高清】【百度图片】的url
- 忆享聚焦|全球云计算市场份额、数字虚拟人、“元宇宙”实体店……近期行业热点速览
- 浅谈分布式架构的几种主要开发方式
- 对端口Com1的访问被拒绝
- python拆分excel文件
- 远程部署代码debug在本地调试
- apple tv 开发_如何在Apple TV上观看直播电视
- rac监听状态:CHECK TIMED OUT
- 快压系列软件删除(尽力版)