XamPieChartのグラフに表示されるラベルを%に変更したい場合は、
- FormatLabelイベントでパーセントの値を計算してラベルに指定する。
- (凡例内ではもとのラベルを表示させたい場合は)FormatLegendLabelでもとのラベルをラベルに指定しなおす。
で可能です。
<!-- MainWindow.xaml側 --> <ig:XamPieChart LabelMemberPath="DisplayText" ValueMemberPath="Value" Legend="{Binding ElementName=itemLegend1}" FormatLabel="xamPieChart1_FormatLabel" FormatLegendLabel="xamPieChart1_FormatLegendLabel" ... /> <ig:ItemLegend x:Name="itemLegend1" Grid.Column="1"/>
// MainWindow.xaml.cs側 private void xamPieChart1_FormatLabel(object sender, Infragistics.Controls.Charts.PieChartFormatLabelEventArgs args) { // 合計値を取得する。(※今回は、ViewModel側のプロパティとしてあるという想定です) int total = ((MainWindowViewModel)DataContext).Total; // このラベルに紐づいているデータを取り出す。 SampleDataItem dataItem = (SampleDataItem)(args.Item.Item); // 割合を計算する。 double rate = (double)(dataItem.Value) / (double)total; // ラベルとしてパーセント値を指定する。 args.Label = rate.ToString("P1"); } private void xamPieChart1_FormatLegendLabel(object sender, Infragistics.Controls.Charts.PieChartFormatLabelEventArgs args) { // このラベルに紐づいているデータを取り出す。 SampleDataItem dataItem = (SampleDataItem)(args.Item.Item); // ラベルとしてもともとのラベルを指定する。 args.Label = dataItem.DisplayText; }
実行結果
サンプル
APIリファレンス
- FormatLabel イベント (PieChartBase)
- FormatLegendLabel イベント