C# WPF工具箱饼图样式颜色

C# WPF工具箱饼图样式颜色,c#,wpf,toolkit,pie-chart,C#,Wpf,Toolkit,Pie Chart,我想为我的饼图中的每个饼片设置代码隐藏中的颜色。有人知道怎么做吗?现在它从样式xaml中获取颜色,但我需要自己从codebehind中为每个值(饼图切片)分配颜色。一种可能的方法是从中构造颜色,保持SL/SV部分固定,您可以将整个色调范围划分为饼图切片的数量,这应确保它们在视觉上合理分开。不同的SL/SV值将使图表呈现出鲜艳的颜色、粉彩或深色等。不确定这是否是最好的方法,但我还是在做同样的事情,最终还是让它像这样工作 声明调色板: System.Windows.Controls.DataVisu

我想为我的饼图中的每个饼片设置代码隐藏中的颜色。有人知道怎么做吗?现在它从样式xaml中获取颜色,但我需要自己从codebehind中为每个值(饼图切片)分配颜色。

一种可能的方法是从中构造颜色,保持SL/SV部分固定,您可以将整个色调范围划分为饼图切片的数量,这应确保它们在视觉上合理分开。不同的SL/SV值将使图表呈现出鲜艳的颜色、粉彩或深色等。

不确定这是否是最好的方法,但我还是在做同样的事情,最终还是让它像这样工作

声明调色板:

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);
请注意,必须将每个笔刷(或调色板条目)创建为新的ResourceDictionary对象。如果创建10个画笔并将它们全部添加到同一个ResourceDictionary中,则piechart将只使用第一种颜色。(或许我只是做错了什么)

然后将图表选项板设置为自定义选项板:

this.yourChartsName.Palette = pieSeriesPalette;
这仅在您希望将调色板自定义为特定颜色时有用。对于颜色范围或固定的颜色列表,我相信您可以用XAML定义调色板。 希望能有帮助