用WPF山寨折图.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用WPF山寨折线图,抄?是狠狠的抄 原文来自:雨枫技术教程网 原文网址:/plus/view-172870-1.html 对于没有美术细胞的我来说,抄袭人家的设计或是创意是再平常不过的事,我承认这很无耻,如果在伟大“天朝”的教育体系下还可能升级为道德上的沦丧,毕竟人家搞个东西也不容易,可任务在身,只好下策,脸皮总是在生存以后才拿上台面的。所以也就不避讳了,俺就是抄的。 该图抄袭自 万仓一黍 的在winform中运用FusionCharts图表(一) 一.抄袭模式 尽管样式要抄袭,可代码不能抄袭,因为没有源码^ – ^ 。首先我们先从使用者的角度出发,作为使用者,我希望怎么来使用控件,而且要考虑到WPF的一些特性。线条可以一个个数组给,和传统的控件一样。可我认为这并不符合WPF的组装特性,每个线条可以是自由控制的,可粗可细,可虚线可实线。 如效果为这样的图: 可以是这样的设计,也就是每个控件自己是一层,和其它控件没有直接联系。就连底面也是可以自由搭配的。 使用还有个就是代码的书写,那么在XAML中单个的控件就可以写成这样 Sample:LineChart LineColor=Orange LineThickness=20 Datas={Binding Items} /如若要实现多个拼接,把控件放到可以层叠的容器当中就可以了,比如Grid.如果你的数据是集合形式的,还可以借助ItemsControl这样的集合控件。 这里可能已经有人看出来抄袭的是WPF装饰器的模式和概念。 二.抄袭图形 初步设想不错,可还不够灵活,假设每个点的样式可以更改而不仅仅是这种默认的白点,如根据喜好可以设置五角星,小红旗,这怎么办?一般情况下我们会为控件再添加个点的模板属性;在这里我又踟蹰了很久,是否真的需要这么的“一步到位”?在几年前,我曾听说装修现在有个观点叫做“轻装修,重装饰”,就是建好一个架子,里面的东西是可以由着喜好、心情、季节随意搭配。所以我更倾向于控件首先能实现一些比较简单的功能,可如果要更高级的功能和效果应该可以附加上的,毕竟有时候一开始也很难知道用户的喜好,加上有时候时间紧迫就只能先留下框架,以后有机会再讨价还价索要时间。 产品功能暂时可以延期,却不能老是跳票,“永远的毁灭公爵”绝不是好榜样。 对每个点进行模板,设置每个点实际的位置,很容易让我们想到使用ItemsControl,做个放置位置的Panel就可以了,当然很明显我们并不需要那么多的功能,只要求每个点都能设置一个模板,那么好吧,依葫芦画瓢来个ItemTemplate、 ItemTemplateSelector、ItemStringFormat属性,只需要在初始化的时候声明个UIElementCollection 变量,在数据存放以后为数据new个性模板就成,如GetContainerForItemOverride()方法。 在这种条件下做个层,可以轻松的看到类似这样的效果,当然音符是我再次发挥抄袭特长的结果,具体的可以看/free-icons.php 对于层来说,还可以有很多的发挥,如下: 对这种应用也可以手到擒来: 不要惊讶,WPF是有API的,使用CombinedGeometry然后用GeometryCombineMode.Exclude就可以了。 因为底色也可以随意混搭,所以加个水印、Logo,背景提示语之类的也不是什么难事。 对于以上的所谓“创意”,当然是抄袭的,参见各大网站统计图。 三.抄袭代码 项目经理有要求图上的所有线条比例要统一,这个要求很合乎常理,可我们的线条都是单独的一个控件,你也许会说让后端计算出一个最大值绑定一下不就OK了,但一般控件都可以达到的效果,凭什么就要让业务干预,毕竟我们分层的原则是UI和业务分离,虽然有时候会有些妥协,但我们也要尽可能的做大完善,水平不就是在这样的“苛责”中进步的么? 感觉不错的抄法 ▲名字抄袭 做为前端人员,可能希望只要设置一个属性就可以完成,其实它的目的就是为了功能的附加,感觉有点像ToolTipService吧,那么我们的名字就叫LineChartService。 Sample:LineChart LineColor=Orange Sample:LineChartService.GroupName=group1 LineThickness=2 Datas={Binding Items} / Sample:LineChart LineColor=Green Sample:LineChartService.GroupName=group1

文档评论(0)

剑影 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档