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

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

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

<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。 blog

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

效果以下: get

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值,代码以下: it

<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>
相关文章
相关标签/搜索