visifire今天登陆他们官网的时候,发现好像是挂掉了,不知道是不再运营了,还是单纯服务器出了问题。

VisifireChart的效果不炫,但是对于一些项目,感觉够用的,所以,今天大概看了几篇博客,学习了一下

http://www.cnblogs.com/wyuan/archive/2012/07/22/WPF.html

http://www.cnblogs.com/xinyus/p/3422198.html

自己也尝试写了写效果,VisifireChart支持单组数据的对比,和多组数据的对比。

数据是从网上找的,然后自己弄成了XML格式文件,读取到了List列表里。

单组数据的对比,效果还是明显好看一些的。

图表的样式是通过一个枚举参数设置的RenderAs,下设很多项:点,线,柱状图等,基本都是比较常用的。

单组数据的时候,用哪种样式是都没有问题的,但是当多组数据组合时,如果是同一种样式也是OK的,但是如果是不同的样式,则有的是不兼容的。

不兼容的,直接在设计页面,直接就会抛错,如图

两组数据,一个设置的是Doughnut(圈),一个设置的是Line(线),这两种无法在一个X轴和Y轴上进行相关的实现显示,所以,会冲突。

当两个都设置成Doughnut时,不冲突,可以显示,但是很乱,所以具体的效果,需要开发人员自己根据业务要求,进行相关的组装。

上面两篇帖子基本都讲述了如何去用VisifireChart,但是提供的代码一般都是CS的代码,个人更喜欢用XAML代码去实现,所以,我的代码除了Binding以外,页面的设计,是用XAML写的。

  <Grid>
<chart:Chart Name="chart" AnimatedUpdate="True" AnimationEnabled="True" ThemeEnabled="True" View3D="True" ScrollingEnabled="True" ShadowEnabled="True" >
<chart:Chart.Titles>
<chart:Title FontSize="16" Text="部分省平均薪资"/>
</chart:Chart.Titles>
<chart:Chart.AxesY>
<chart:Axis Suffix="元"/>
</chart:Chart.AxesY>
<chart:Chart.Series>
<chart:DataSeries DataSource="{Binding WargeList,UpdateSourceTrigger=PropertyChanged}" LegendText="非城镇收入" RenderAs="Doughnut">
<chart:DataSeries.DataMappings>
<chart:DataMapping MemberName="AxisXLabel" Path="CityName"/>
<chart:DataMapping MemberName="YValue" Path="NpoWage"/>
<chart:DataMapping MemberName="Tag" Path="CityName"/>
</chart:DataSeries.DataMappings>
</chart:DataSeries>
<chart:DataSeries DataSource="{Binding WargeList,UpdateSourceTrigger=PropertyChanged}" LegendText="城镇收入" RenderAs="Doughnut">
<chart:DataSeries.DataMappings>
<chart:DataMapping MemberName="AxisXLabel" Path="CityName"/>
<chart:DataMapping MemberName="YValue" Path="PoWage"/>
<chart:DataMapping MemberName="Tag" Path="CityName"/>
</chart:DataSeries.DataMappings>
</chart:DataSeries>
</chart:Chart.Series>
</chart:Chart>
</Grid>

只需要将相关的数据绑定到对应的字段上,剩下的就交给程序自己吧。

代码

WPF 初学VisifireChart的更多相关文章

  1. WPF初学(一)——布局【良好界面的基础】

    由Winform转到WPF的一部分人,很可能忽略掉布局,习惯性的使用固定定位.然而,没有良好的布局,后面界面控件画的再好看,花哨,都不过是鲜花插在牛粪上,很可能始终都是一坨??(呵呵). 闲话少说,首 ...

  2. WinForm数字小键盘/WPF数字小键盘

    模仿原本的WinForm触摸屏小键盘制作WPF触摸屏小键盘 原WinForm触摸屏小键盘样式(WinForm采用Krypton系列控件)如下图: Designer代码如下: // // BtnNum1 ...

  3. WPF datagrid 初学

    <Window x:Class="WpfDemo.WinDataGrid" xmlns="http://schemas.microsoft.com/winfx/20 ...

  4. [初学WPF]控件大小自适应

    想在Win上自己写点小工具用,GUI自然是免不了的,于是决定学一学WPF,直接拖控件是很方便啊.控件拖出来以后发现运行时改变窗口大小控件不会重绘,搜索了一下发现了解决办法:使用Viewbox控件. V ...

  5. (初学)wpf仿QQ界面-整体布局

    跟一个小学弟一起学习wpf,小学弟是刚初中毕业,对编程刚刚接触,我挺怕自己带的不好,影响小学弟以后在编程方向的学习兴趣.我承认自己水平不高,但是在努力去学习新知识!一起加油吧!在此以博客,记录学习进度 ...

  6. WPF 我的初学必备技能

    0.控件 0.1.内容控件(Content Controls) 0.2.条目控件(Items Controls) 0.3.文本控件(Text Controls) 0.4.范围控件(Range Cont ...

  7. [开发笔记]-初学WPF之自学笔记

    一:动态加载背景图片 代码: 在窗体加载时,Window_Loaded 方法中: #region 测试动态加载背景图片 /* 1.图片右键 属性: 复制到输出目录:选择“如果较新则复制” 生成操作选择 ...

  8. WPF 变量绑定实现

    最近初学WPF,遇到如控件的内容是动态生成的.这时候就需要变量绑定. 简单写下变量绑定的步骤. 如下面的 例子,TextBlock 的内容是动态的,绑定变量StuName. <TextBlock ...

  9. WPF之Binding初探

    初学wpf,经常被Binding搞晕,以下记录写Binding的基础. 首先,盗用张图.这图形象的说明了Binding的机理. 对于Binding,意思是数据绑定,基本用法是: 1.在xmal中使用 ...

随机推荐

  1. CSS控制Span强制换行亲测

    span { word-wrap: break-word; word-break: break-all; white-space: pre-wrap !important; }

  2. AWS CSAA -- 04 AWS Object Storage and CDN - S3 Glacier and CloudFront(四)

    026 S3 Summary

  3. VMware部署ubuntu后开机提示piix4_smbus: Host SMBus controller not enabled!

    在虚拟机部署ubuntu10.04-server,每次启动完成之后,出现“piix4_smbus0000:00:07.3: Host SMBus controller not enabled!”提示信 ...

  4. Win10命令行激活 & 电脑组装

    系统激活: 1. 管理员身份运行 cmd 2. slmgr.vbs /upk                                                              ...

  5. 分布式事务实现-Percolator

    Google为了解决网页索引的增量处理,以及维护数据表和索引表的一致性问题,基于BigTable实现了一个支持分布式事务的存储系统.这里重点讨论这个系统的分布式事务实现,不讨论percolator中为 ...

  6. Json 操作

    Json简介: JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集 ...

  7. 最近用到的 sql 统计操作

    统计操作 1.分组统计group by select id,name,count(*) as '总数'  from test1 group by id,name     --group by   分组 ...

  8. orcl创建表及管理表

    常用的字段数据类型: .字符串(varchar2(n)) n表示保存最大长度,基本200作用..整数(number(n)) n位的整数,也可用int代替.小数(number(n,m)) m为小数位,n ...

  9. 第五次作业 hql查询

    hql查询是基于对象的查询,不是基于表的查询. 1.hql的简单查询 @Test public void queryUsers() { //简单查询 SessionFactory sf = null; ...

  10. 修改win下ras/pppoe/l2tp等连接数限制

    最近宽带重新拔号一直不换ip,拔了十几分钟IP仍然不变,想起几年前的pppoe多拔,多拔几个PPPOE占着老IP,再拔新的IP出来用 注册表路径,子项中查看MatchingDeviceId判断协议类型 ...