色を変更する簡単な方法があります:Palette
プロパティを再定義します。私はすでに色についての同様の質問に答えました、ここにそれがあります:https ://stackoverflow.com/a/5626435/427225
凡例項目についてはFormattedRatio
、ツールキットライブラリに多くのバグが含まれているため、プロパティにアクセスできませんが、バインドされた項目のプロパティを表示することができます。例を示します。
まず、LegendItem
クラスのスタイルを作成する必要があります。これはデフォルトのものと同じですが、2つの変更があります。ContentTemplate
私が名前を付けた独自のものと、プロパティtestItemTemplate
のバインディングを前のものの代わりに変更したものです。Content
{Binding DataContext}
<UserControl.Resources>
<Style x:Key="testLegendItemStyle" TargetType="chart:LegendItem">
<Setter Property="ContentTemplate" Value="{StaticResource testItemTemplate}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="chart:LegendItem">
<Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
<StackPanel Orientation="Horizontal">
<Rectangle Width="8" Height="8" Fill="{Binding Background}" Stroke="{Binding BorderBrush}" StrokeThickness="1" Margin="0,0,3,0"/>
<datavis:Title Content="{Binding DataContext}" ContentTemplate="{TemplateBinding ContentTemplate}"/>
</StackPanel>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
<chart:Chart>
<chart:PieSeries ItemsSource="{Binding Items}" IndependentValuePath="Title" DependentValuePath="Value" LegendItemStyle="{StaticResource testLegendItemStyle}" />
</chart:Chart>
testItemTemplate
次に、モデルに応じて前述のように書く必要があります。これが例です。
C#ビューモデル
var items = new[] {
new ItemViewModel(){ Title = "Apples", Value = 35, CalculatedAndFormattedValue = "1%" },
new ItemViewModel(){ Title = "Bananas", Value = 43, CalculatedAndFormattedValue = "4%" },
new ItemViewModel(){ Title = "Oranges", Value = 29, CalculatedAndFormattedValue = "3%" },
new ItemViewModel(){ Title = "Cherries", Value = 51, CalculatedAndFormattedValue = "2%" },
new ItemViewModel(){ Title = "Lemons", Value = 31, CalculatedAndFormattedValue = "5%" },
};
Xaml DataTemplate
<DataTemplate x:Key="testItemTemplate">
<TextBlock>
<Run Text="{Binding Title}" />
<Run Text=" - " />
<Run Text="{Binding CalculatedAndFormattedValue}" />
</TextBlock>
</DataTemplate>
言うまでもなく、パーセントは自分で計算する必要があります