原創|使用教程|編輯:郝浩|2013-03-07 16:19:21.000|閱讀 799 次
概述:在上一篇文章《Chart FX for WPF圖表控件如何簡化圖表(一)》中實現了圖表的簡化,節省了大量的控件。在本次的文章中,我們將會增加新的功能到已經簡化了的圖表上。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
在上一篇文章《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>
效果如下:
現在來看看怎么樣在最大值上記性標記呢?具體代碼如下:
<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>
如果說想要顯示每個圖表最后一個值的點標簽的話,我們可以使用相同的類,將其綁定到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>
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件