文档章节

使用Chart FX for WPF简化图表(二)

咲晚杍
 咲晚杍
发布于 2013/11/25 13:32
字数 527
阅读 182
收藏 2

    在上一篇文章《使用Chart FX for WPF简化图表(一)》中实现了图表的简化,节省了大量的控件。在本次的文章中,我们将会增加新的功能到已经简化了的图表上。图表中所绘制的范围上有一个最大和最小值,如果想要在背景上绘制一个浅灰色的矩形,这个矩形使用这个最大值和最小值范围,并且和原来的图表进行重叠,这样的话,如果图表上有任何的值超出了范围,就可以很直观的看见。

    要实现上面的效果,现在有2个关键的问题,首先为了最小化空间,Y轴是不可见的,但是如果想要使用轴部分来展示这个范围,必须确保轴是可见的,但是要求没有任何的标签或是网格线。XAML需要隐藏网格和标签,像下面这样:

<cfx:Chart.AxisY>
  <cfx:Axis Separation="0">
    <cfx:Axis.Labels>
      <cfx:AxisLabelAttributes Visibility="Collapsed"/>
    </cfx:Axis.Labels>
    <cfx:Axis.Grids>
      <cfx:Grids>
        <cfx:Grids.Major>
          <cfx:GridLine Visibility="Collapsed" TickMark="None"/>
        </cfx:Grids.Major>
        <cfx:Grids.Minor>
          <cfx:GridLine Visibility="Collapsed" TickMark="None"/>
        </cfx:Grids.Minor>
      </cfx:Grids>
    </cfx:Axis.Grids>
  </cfx:Axis>
</cfx:Chart.AxisY>

    想要直观的隐藏网格线和标签,设置Separation为0 ,是最小化轴空间的关键。现在要创建一个轴部分,将设置每个产品的最小和最大之间的范围,所以会假设数据层类ProductInfo有2个额外的属性,分别为MinDownloads和MaxDownloads。

<cfx:Axis.Sections>
      <cfx:AxisSection From="{Binding Path=MinDownloads}"
                       To="{Binding Path=MaxDownloads}" Background="#A0A0A0" />
    </cfx:Axis.Sections>

效果如下:

Chart FX for WPF图表控件如何简化图表(二)

现在来看看怎么样在最大值上记性标记呢?具体代码如下:

<cfx:Chart.ConditionalAttributes>
    <cfx:ConditionalAttributes>
      <cfx:ConditionalAttributes.Condition>
        <cfx:MaximumValueCondition/>
      </cfx:ConditionalAttributes.Condition>
      <cfx:ConditionalAttributes.Marker>
        <cfx:MarkerAttributes Visibility="Visible" Fill="Red"
                              Size="6" Shape="Circle" />
      </cfx:ConditionalAttributes.Marker>
    </cfx:ConditionalAttributes>
  </cfx:Chart.ConditionalAttributes>

Chart FX for WPF图表控件如何简化图表(二)

    如果说想要显示每个图表最后一个值的点标签的话,我们可以使用相同的类,将其绑定到X值,代码如下:

<cfx:ConditionalAttributes>
        <cfx:ConditionalAttributes.Condition>
          <cfx:MaximumValueCondition BindingPath="X"/>
        </cfx:ConditionalAttributes.Condition>
        <cfx:ConditionalAttributes.PointLabels>
          <cfx:PointLabelAttributes Visibility="Visible" Offset="3,0"
                                    HorizontalAlignment="Right"
                                    VerticalAlignment="Center" FontSize="7"/>
        </cfx:ConditionalAttributes.PointLabels>
      </cfx:ConditionalAttributes>

本文转载自:http://www.evget.com/article/2013/3/7/18606.html

咲晚杍
粉丝 7
博文 75
码字总数 8143
作品 0
渝中
私信 提问
使用Chart FX for WPF简化图表(一)

有时候你需要漂亮的图表和大量比较绚丽的动画效果,但是有时候又没有必要展示太多视觉上的控件,想要最小化图表空间,使用WPF图表控件Chart FX for WPF就可以很好的实现这两种需求。 比如说你...

咲晚杍
2013/11/21
634
0
DevExpress v17.2新版亮点—WPF篇(六)

用户界面套包DevExpress v17.2终于正式发布,本站将以连载的形式为大家介绍各版本新增内容。本文将介绍了DevExpress WPF v17.2 新的Hamburger Menu、Scheduler Control、Dialogs (CTP)、Dat...

Miss_Hello_World
2018/01/11
40
0
DevExpress v18.1新版亮点——WPF篇(五)

用户界面套包DevExpress v18.1日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容。本文将介绍了DevExpress WPF v18.1 的新功能,快来下载试用新版本!点击下载>> Spreadsheet ...

Miss_Hello_World
2018/08/14
20
0
DevExpress v18.1新版亮点——WinForms篇(七)

用户界面套包DevExpress v18.1日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容。本文将介绍了DevExpress WinForms v18.1 的新功能,快来下载试用新版本!点击下载>> Skins an...

Miss_Hello_World
2018/07/05
42
0
【更新】Infragistics Ultimate UI for WPF v18.2(三):Excel引擎

下载Infragistics Ultimate UI for WPF最新版本 Infragistics Ultimate UI for WPF是一款提供高速的网格和图表,轻松创建仿Office应用程序的WPF界面框架,从广度和深度两方面使得开发者在缩短...

电池盒
2018/12/20
13
0

没有更多内容

加载失败,请刷新页面

加载更多

rime设置为默认简体

转载 https://github.com/ModerRAS/ModerRAS.github.io/blob/master/_posts/2018-11-07-rime%E8%AE%BE%E7%BD%AE%E4%B8%BA%E9%BB%98%E8%AE%A4%E7%AE%80%E4%BD%93.md 写在开始 我的Arch Linux上......

zhenruyan
今天
5
0
简述TCP的流量控制与拥塞控制

1. TCP流量控制 流量控制就是让发送方的发送速率不要太快,要让接收方来的及接收。 原理是通过确认报文中窗口字段来控制发送方的发送速率,发送方的发送窗口大小不能超过接收方给出窗口大小。...

鏡花水月
今天
10
0
OSChina 周日乱弹 —— 别问,问就是没空

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @tom_tdhzz :#今日歌曲推荐# 分享容祖儿/彭羚的单曲《心淡》: 《心淡》- 容祖儿/彭羚 手机党少年们想听歌,请使劲儿戳(这里) @wqp0010 :周...

小小编辑
今天
1K
11
golang微服务框架go-micro 入门笔记2.1 micro工具之micro api

micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能 重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techidea8....

非正式解决方案
今天
5
0
Spring Context 你真的懂了吗

今天介绍一下大家常见的一个单词 context 应该怎么去理解,正确的理解它有助于我们学习 spring 以及计算机系统中的其他知识。 1. context 是什么 我们经常在编程中见到 context 这个单词,当...

Java知其所以然
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部