Во-первых, я очень новичок в wpf и XAML. Большая часть моего опыта связана с приложениями для форм Windows.
У меня очень простая диаграмма с тремя рядами линий, привязанными к объектам данных. Мне бы хотелось настроить легенду, чтобы она отображала не только цвета и заголовки серии строк, но и добавила текстовое поле под каждым элементом легенды, чтобы отобразить последнее значение точки данных в серии.
Вот что у меня есть:
<Grid Grid.Row="1" Grid.Column="1" Background="{StaticResource graphBackground}" >
<Grid.Resources >
<Style TargetType="charting:LineSeries" >
<Setter Property="PolylineStyle" >
<Setter.Value>
<Style TargetType="Polyline" >
<Setter Property="StrokeThickness" Value="5" />
</Style>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="LegendItemStyle" TargetType="charting:LegendItem" >
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type charting:LegendItem}">
<Border BorderBrush="Black" BorderThickness="0">
<StackPanel>
<StackPanel Orientation="Horizontal" >
<Rectangle Width="12" Height="12" Fill="{Binding Background}" />
<datavis:Title Content="{TemplateBinding Content}" FontSize="18" Margin="10"/>
</StackPanel>
<StackPanel Orientation="Horizontal" >
<TextBlock Text="{Binding}" />
</StackPanel>
</StackPanel>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Grid.Resources>
<charting:Chart FontWeight="Bold">
<charting:Chart.Axes>
<charting:LinearAxis Orientation="Y" Minimum="0" Maximum="{Binding Path=graphmax}" Interval="{Binding Path=graphinterval}" ShowGridLines="True" FontSize="18" />
<charting:DateTimeAxis Orientation="X" FontSize="18" Minimum="{Binding Path=datemin}" Maximum="{Binding Path=datemax}" IntervalType="Months" Interval="1" />
</charting:Chart.Axes>
<charting:LineSeries ItemsSource="{Binding Path=dataPoints}" DependentValuePath="Value" IndependentValuePath="Key" Title="13 Wk" LegendItemStyle="{DynamicResource LegendItemStyle}">
<charting:LineSeries.DataPointStyle>
<Style TargetType="charting:LineDataPoint" >
<Setter Property="Background" Value="Green" />
<Setter Property="Opacity" Value="0" />
</Style>
</charting:LineSeries.DataPointStyle>
</charting:LineSeries>