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 イベント