Changement De Silverlight Légende Du Graphique De L'Élément De Mise En Page

Je suis en train de travailler sur la personnalisation de la présentation du Silverlight Toolkit Graphique. J'ai deux exigences:

1) Déplacer la zone de Légende au bas du graphique (résolu).

2) modifier la disposition des éléments à l'intérieur de la légende pour être affiché à côté de l'autre,
c'est à dire. {légende 1},{legend 2},{légende 3}, plutôt que la valeur par défaut de la colonne.

1) a été facile à résoudre avec un ControlTemplate (voir ci-dessous).

2) Comment puis-je changer la disposition des éléments de la légende? Peut-il être fait en plus de la personnalisation du Graphique ControlTemplate, ou ne la Légende a besoin de sa propre ControlTemplate?

Le Tableau lui-même est définie comme:

<chartingToolkit:Chart Name="chartCompareMain" 
                       Template="{StaticResource ChartLayoutLegendBottom}">
        <chartingToolkit:Chart.Axes>
             <chartingToolkit:DateTimeAxis Orientation="X" 
                        AxisLabelStyle="{StaticResource ChartDateFormat}">
             </chartingToolkit:DateTimeAxis>
             <chartingToolkit:LinearAxis  Orientation="Y"/>
        </chartingToolkit:Chart.Axes>
</chartingToolkit:Chart>    

ControlTemplate pour déplacer les éléments de légende (basé sur le modèle par défaut) est:

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

OriginalL'auteur Ryan | 2009-12-16