2010-03-11 110 views
1

我想爲我的PieChart中的每個Pie Slice設置代碼隱藏顏色。任何人都知道如何做到這一點?現在它從樣式xaml中獲取顏色,但是我需要從代碼隱藏中爲每個值(餅圖片)分配顏色。WPF工具包餅圖風格顏色

回答

0

一個可能性是從HSL or HSV構建你的顏色,保持SL/SV部分不變,你可以將整個色調範圍劃分成你有的餡餅片數量,這應該確保它們在視覺上是相當分離的。不同的SL/SV值將使圖表鮮明的顏色或粉彩或深色調等。

6

不知道這是否是最好的方式,但我努力爭取同樣的東西,最終得到了這樣的工作。

聲明一個調色板:

System.Windows.Controls.DataVisualization.ResourceDictionaryCollection pieSeriesPalette = new System.Windows.Controls.DataVisualization.ResourceDictionaryCollection(); 

然後創建一個刷(或刷)與顏色信息:

Brush currentBrush = new SolidColorBrush(Color.FromRgb(128, 128, 128)); //Grey 

隨着每個刷子,創建一個新的樣式,並將其添加到調色板集:

System.Windows.ResourceDictionary pieDataPointStyles = new ResourceDictionary(); 
Style stylePie = new Style(typeof(PieDataPoint)); 
stylePie.Setters.Add(new Setter(PieDataPoint.BackgroundProperty, currentBrush)); 
pieDataPointStyles.Add("DataPointStyle", stylePie); 
pieSeriesPalette.Add(pieDataPointStyles); 

請注意,必須將每個畫筆(或調色板條目)創建爲新的ResourceDiction ary對象。如果您創建10個畫筆並將它們全部添加到相同的ResourceDictionary中,則該餅圖將只使用第一種顏色。 (或者,也許我只是做錯了什麼)。

然後設置圖表調色板的自定義調色板:

this.yourChartsName.Palette = pieSeriesPalette; 

如果你想定製調色板特定顏色這是唯一有用的。對於顏色範圍或固定的顏色列表,我相信您可以在XAML中定義調色板。 希望它有幫助。