Wednesday, 10 August 2011

Toolkit Chart ControlTemplate

<ControlTemplate TargetType="toolkit:Chart">
                        <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}">
                            <Grid>
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="Auto"/>
                                    <RowDefinition Height="*"/>
                                </Grid.RowDefinitions>
                                <toolkit:Title Content="{TemplateBinding Title}" Style="{TemplateBinding TitleStyle}"/>
                                <Grid Margin="0,15,0,15" Grid.Row="1">
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="*"/>
                                        <ColumnDefinition Width="Auto"/>
                                    </Grid.ColumnDefinitions>
                                    <toolkit:Legend x:Name="Legend" Grid.Column="1" Header="{TemplateBinding LegendTitle}" Style="{TemplateBinding LegendStyle}"/>
                                    <System_Windows_Controls_DataVisualization_Charting_Primitives:EdgePanel x:Name="ChartArea" Style="{TemplateBinding ChartAreaStyle}">
                                        <Grid Style="{TemplateBinding PlotAreaStyle}" Canvas.ZIndex="-1"/>
                                        <Border BorderBrush="#FF919191" BorderThickness="1" Canvas.ZIndex="10"/>
                                    </System_Windows_Controls_DataVisualization_Charting_Primitives:EdgePanel>
                                </Grid>
                            </Grid>
                        </Border>
                    </ControlTemplate>

4 comments:

  1. Hi geoff,
    when i add this part of code in my chart.xaml page but legend not displayed on chart area.
    so please help as soon as possible.

    ReplyDelete
  2. This is just the standard chart template pulled out in blend. Are you using it with the zoom example or in a non-zoomed chart?

    ReplyDelete
  3. I am using it with zoom example

    ReplyDelete
  4. the zoom sample already has customised templates. You could add a legend to the main chart control but I can't remember if it will work with zooming. It may get zoomed which you don't want. When I implemented this, I used s listbox outside the chart on the right to display my own legend so the chart surface only contained series data

    ReplyDelete