2010-08-29 5 views
8

Sto utilizzando il controllo Chart di WPF Toolkit di febbraio 2010. Il grafico occupa molto spazio rispetto all'area del grafico.Modifica margine intorno all'area del tracciato e titolo nel WPF Toolkit chart

Come controllo il margine attorno all'area del grafico e al titolo del grafico. In questo modo, posso organizzare i 10 grafici di cui ho bisogno in una griglia senza dover usare così tanto spazio sullo schermo.

Grazie,

sprite.

risposta

9

Ho trovato una risposta a una domanda simile nei forum di discussione del WPF Toolkit e ho pensato di condividere la conoscenza.

L'unica soluzione attualmente disponibile è quella di progettare il grafico da solo. Quindi, in pratica, ho preso la definizione di stile originale dal codice sorgente del toolkit e l'ho modificata per soddisfare le mie esigenze. Ho anche usato questo per rimuovere completamente la legenda.

<Grid.Resources> 
    <!-- chart style modified from WPFToolkit\DataVisualization\Themes\generic.xaml --> 
    <Style TargetType="charts:Chart"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="charts:Chart"> 
        <Grid> 
         <Grid.RowDefinitions> 
          <RowDefinition Height="Auto" /> 
          <RowDefinition Height="*" /> 
         </Grid.RowDefinitions> 
         <dataVis:Title Content="{TemplateBinding Title}" Style="{TemplateBinding TitleStyle}" Margin="1"/> 
         <!-- Use a nested Grid to avoid possible clipping behavior resulting from ColumnSpan+Width=Auto --> 
         <Grid Grid.Row="1" Margin="5,0,5,0"> 
          <Grid.ColumnDefinitions> 
           <ColumnDefinition Width="*" /> 
           <ColumnDefinition Width="Auto" /> 
          </Grid.ColumnDefinitions> 
          <chartPrmtvs:EdgePanel x:Name="ChartArea" Style="{TemplateBinding ChartAreaStyle}"> 
           <Grid Canvas.ZIndex="-1" Style="{TemplateBinding PlotAreaStyle}" /> 
           <Border Canvas.ZIndex="10" BorderBrush="#FF919191" BorderThickness="1" /> 
          </chartPrmtvs:EdgePanel> 
         </Grid> 
        </Grid> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
</Grid.Resources> 

Questo modello rimuove i margini al minimo intorno l'area del titolo e la trama e rimuove anche la leggenda. Ho quindi utilizzato questo controllo utente adatto alle mie esigenze e riutilizzato molte volte.

seguenti spazi dei nomi sono stati definiti nell'intestazione del controllo:

xmlns:dataVis="clr-namespace:System.Windows.Controls.DataVisualization;assembly=System.Windows.Controls.DataVisualization.Toolkit" 
xmlns:chartPrmtvs="clr-namespace:System.Windows.Controls.DataVisualization.Charting.Primitives;assembly=System.Windows.Controls.DataVisualization.Toolkit" 
xmlns:charts="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit" 

Enjoy!

+1

Hai reso la mia giornata !! Grazie molto! – 321X

Problemi correlati