原創|使用教程|編輯:龔雪|2016-03-30 09:06:22.000|閱讀 760 次
概述:在前面的章節中,我們介紹了如何給圖表添加單個軸和添加多軸。在實際的業務場景中,軸會有顯示日期,或是特殊的樣式。在本文就來介紹如何實現軸注釋的高級自定義。圖表為報表和分析提供可視化分析,因此用戶經常需要大量的自定義。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
<ComponentOne Studio for WPF下載>
在前面的章節中,我們介紹了如何給圖表添加單個軸和添加多軸。在實際的業務場景中,軸會有顯示日期,或是特殊的樣式。在本文就來介紹如何實現軸注釋的高級自定義。圖表為報表和分析提供可視化分析,因此用戶經常需要大量的自定義。
本文實現軸標簽的條件化自定義。首先,我們先來看看最終的實現結果。這張圖演示了當Y軸數據為空的時候,X軸的注釋用紅色展示出來。如下圖所示:
步驟如下:
我們首先要定義軸標簽的模板,為以后的自定義奠定基礎。XAML代碼參考如下:
<Window.Resources> <DataTemplate x:Key="lbl"> <TextBlock Margin="2,25,5,20" Text="{Binding}" /> </DataTemplate> </Window.Resources>
一旦我們有基本的設計,就可以通過AxisX的AnnoTemplate屬性設置模板,如下所示:
<c1chart:C1Chart Name="c1Chart1" ChartType="Column"> <c1chart:C1Chart.View> <c1chart:ChartView> <c1chart:ChartView.AxisX> <c1chart:Axis AnnoTemplate="{StaticResource lbl}" AnnoCreated="Axis_AnnoCreated"/> </c1chart:ChartView.AxisX> </c1chart:ChartView> </c1chart:C1Chart.View> <c1chart:C1ChartLegend DockPanel.Dock="Right" /> </c1chart:C1Chart>
如上的XAML代碼,獲取AnnoCreated事件。這個事件剋提供獲取單獨自定義注釋的重畫能力。
在代碼的最后,我們獲取每個DataSeires的注釋的Y軸的值。一旦我們得到了這個值,接下來自定義AnnoTemplate的事情就變得簡單了。
private void Axis_AnnoCreated(object sender, AnnoCreatedEventArgs e) { if (((c1Chart1.Data.Children[0] as DataSeries).ValuesSource as ObservableCollection<double?>)[e.Index] == null) (e.Label as TextBlock).Foreground = new SolidColorBrush(Colors.Red); }
這樣關鍵的代碼和步驟已經完成。如下是本文的示例,請下載查看源碼:
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件網