PieChart のすべての Pie Slice のコード ビハインドで色を設定したいと思います。誰でもこれを行う方法を知っていますか? スタイル xaml から色を取得するようになりましたが、コード ビハインドから自分で各値 (パイ スライス) に色を割り当てる必要があります。
4495 次
2 に答える
7
これが最善の方法かどうかはわかりませんが、私は同じことに苦労し、最終的にはこのように機能するようになりました。
パレットを宣言します。
System.Windows.Controls.DataVisualization.ResourceDictionaryCollection pieSeriesPalette = new System.Windows.Controls.DataVisualization.ResourceDictionaryCollection();
次に、色情報を使用して1つまたは複数のブラシを作成します。
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に追加すると、円グラフは最初の色のみを使用します。(または、私は何か間違ったことをしているだけかもしれません)。
次に、チャートパレットをカスタムパレットに設定します。
this.yourChartsName.Palette = pieSeriesPalette;
これは、パレットを特定の色にカスタマイズする場合にのみ役立ちます。色の範囲または色の固定リストについては、XAMLでパレットを定義するだけでよいと思います。それが役に立てば幸い。
于 2011-10-17T14:20:35.073 に答える
0
1 つの可能性は、 HSL または HSVから色を作成し、SL/SV 部分を固定したままにして、色相範囲全体をパイ スライスの数に分割できるようにすることです。異なる SL/SV 値は、チャートを鮮やかな色、パステル、暗い色合いなどにします。
于 2010-03-11T14:20:11.993 に答える