0
votes

How to change the location of legend in WPF Charting Toolkit?

I'm using Line Series and the legend appears at the right side reducing the width of charting area.

I'd like to locate the legend for example at the right top corner of chart.

How to do it?

1

1 Answers

1
votes

You need to modify the ControlTemplate a bit:

<chartingToolkit:Chart Title="...">
    <chartingToolkit:Chart.Template>
        <ControlTemplate TargetType="{x:Type chartingToolkit:Chart}"
                                 xmlns:visualizationToolkit="clr-namespace:System.Windows.Controls.DataVisualization;assembly=System.Windows.Controls.DataVisualization.Toolkit" 
                                 xmlns:Primitives="clr-namespace:System.Windows.Controls.DataVisualization.Charting.Primitives;assembly=System.Windows.Controls.DataVisualization.Toolkit" >
            <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}">
                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="*"/>
                    </Grid.RowDefinitions>
                    <visualizationToolkit:Title Content="{TemplateBinding Title}" Style="{TemplateBinding TitleStyle}"/>
                    <Grid Grid.Row="1">
                        <Primitives:EdgePanel x:Name="ChartArea" Style="{TemplateBinding ChartAreaStyle}">
                            <Grid Style="{TemplateBinding PlotAreaStyle}" Panel.ZIndex="-1"/>
                            <Border BorderBrush="#FF919191" BorderThickness="1" Panel.ZIndex="10"/>
                        </Primitives:EdgePanel>
                        <visualizationToolkit:Legend x:Name="Legend"
                                                             Style="{TemplateBinding LegendStyle}" 
                                                             Title="{TemplateBinding LegendTitle}"
                                                             HorizontalAlignment="Right"
                                                             VerticalAlignment="Top"
                                                             Margin="0 2 2 0"/>
                    </Grid>
                </Grid>
            </Border>
        </ControlTemplate>
    </chartingToolkit:Chart.Template>
</chartingToolkit:Chart>