2010-08-29 14 views

Respuesta

9

Encontré una respuesta a una pregunta similar en los foros de discusión de WPF Toolkit y pensé en compartir el conocimiento.

La única solución disponible actualmente es diseñar el gráfico yo mismo. Básicamente, tomé la definición de estilo original del código fuente del kit de herramientas y lo modifiqué para satisfacer mis necesidades. También usé esto para eliminar completamente la leyenda.

<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> 

Esta plantilla elimina los márgenes al mínimo posible alrededor del título y el área de trazado y también elimina la leyenda. Luego utilicé esto en un control de usuario adecuado a mis necesidades y lo reutilicé muchas veces.

Los siguientes espacios de nombres se definieron en la cabecera del control:

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

¡Hiciste mi día! ¡Muchas gracias! – 321X

Cuestiones relacionadas