2

PieChart のすべての Pie Slice のコード ビハインドで色を設定したいと思います。誰でもこれを行う方法を知っていますか? スタイル xaml から色を取得するようになりましたが、コード ビハインドから自分で各値 (パイ スライス) に色を割り当てる必要があります。

4

2 に答える 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 に答える