原創(chuàng)|使用教程|編輯:龔雪|2016-03-30 09:06:22.000|閱讀 774 次
概述:在前面的章節(jié)中,我們介紹了如何給圖表添加單個(gè)軸和添加多軸。在實(shí)際的業(yè)務(wù)場(chǎng)景中,軸會(huì)有顯示日期,或是特殊的樣式。在本文就來(lái)介紹如何實(shí)現(xiàn)軸注釋的高級(jí)自定義。圖表為報(bào)表和分析提供可視化分析,因此用戶經(jīng)常需要大量的自定義。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷(xiāo)售中 >>
相關(guān)鏈接:
<ComponentOne Studio for WPF下載>
在前面的章節(jié)中,我們介紹了如何給圖表添加單個(gè)軸和添加多軸。在實(shí)際的業(yè)務(wù)場(chǎng)景中,軸會(huì)有顯示日期,或是特殊的樣式。在本文就來(lái)介紹如何實(shí)現(xiàn)軸注釋的高級(jí)自定義。圖表為報(bào)表和分析提供可視化分析,因此用戶經(jīng)常需要大量的自定義。
本文實(shí)現(xiàn)軸標(biāo)簽的條件化自定義。首先,我們先來(lái)看看最終的實(shí)現(xiàn)結(jié)果。這張圖演示了當(dāng)Y軸數(shù)據(jù)為空的時(shí)候,X軸的注釋用紅色展示出來(lái)。如下圖所示:

步驟如下:
我們首先要定義軸標(biāo)簽的模板,為以后的自定義奠定基礎(chǔ)。XAML代碼參考如下:
<Window.Resources>
<DataTemplate x:Key="lbl">
<TextBlock Margin="2,25,5,20" Text="{Binding}" />
</DataTemplate>
</Window.Resources>
一旦我們有基本的設(shè)計(jì),就可以通過(guò)AxisX的AnnoTemplate屬性設(shè)置模板,如下所示:
<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事件。這個(gè)事件剋提供獲取單獨(dú)自定義注釋的重畫(huà)能力。
在代碼的最后,我們獲取每個(gè)DataSeires的注釋的Y軸的值。一旦我們得到了這個(gè)值,接下來(lái)自定義AnnoTemplate的事情就變得簡(jiǎn)單了。
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);
}
這樣關(guān)鍵的代碼和步驟已經(jīng)完成。如下是本文的示例,請(qǐng)下載查看源碼:
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@ke049m.cn
文章轉(zhuǎn)載自:慧都控件網(wǎng)