Question

Quelqu'un sait comment ou trouver de bons exemples de configuration explicitement la couleur de la série de points de données lors de l'utilisation du contrôle graphique de WPFToolkit? Je voudrais mettre cela comme un style dans mon XAML.

Était-ce utile?

La solution

Vous pouvez définir la palette sur le graphique. Cet exemple est pour un ColumnSeries, mais vous pouvez l'adapter à tout type que vous utilisez.

<charting:Chart ... Palette="{StaticResource MyPalette}">

La définition de la palette se présente comme suit:

<datavis:ResourceDictionaryCollection x:Key="MyPalette">
   <ResourceDictionary>
      <Style x:Key="DataPointStyle" BasedOn="{StaticResource ColumnSeries1Style}" TargetType="Control" />
   </ResourceDictionary>
   <ResourceDictionary>
      <Style x:Key="DataPointStyle" BasedOn="{StaticResource ColumnSeries2Style}" TargetType="Control" />
   </ResourceDictionary>
   ... add more if necessary
</datavis:ResourceDictionaryCollection>

Les styles "ColumnSeries1Style" et "ColumnSeries1Style" définissent la brosse d'arrière-plan pour la série:

<Style x:Key="ColumnSeries1Style" TargetType="Control">
   <Setter Property="Background" Value="{StaticResource Series1Brush}" />
</Style>

<Style x:Key="ColumnSeries2Style" TargetType="Control">
   <Setter Property="Background" Value="{StaticResource Series2Brush}" />
</Style>

Vous pouvez définir les pinceaux comme bon vous semble. Voici comment obtenir le remplissage dégradé dans les graphiques par défaut:

<Color x:Key="Series1Color" A="255" R="139" G="180" B="232" />
<Color x:Key="Series1HighlightColor" A="255" R="188" G="229" B="255" />
<RadialGradientBrush x:Key="Series1Brush">
   <RadialGradientBrush.RelativeTransform>
      <TransformGroup>
         <ScaleTransform CenterX="0.5" CenterY="0.5" ScaleX="2.09" ScaleY="1.819" />
         <TranslateTransform X="-0.425" Y="-0.486" />
      </TransformGroup>
   </RadialGradientBrush.RelativeTransform>
   <GradientStop Color="{StaticResource Series1HighlightColor}"/>
   <GradientStop Color="{StaticResource Series1Color}" Offset="1"/>
</RadialGradientBrush>

Autres conseils

Juste au cas où quelqu'un est intéressé, il existe un moyen plus simple de le faire. Vous avez juste besoin de régler la DataPointStyle dans les ColumnSeries et changer la propriété d'arrière-plan.

<DVC:ColumnSeries IndependentValueBinding="{Binding Path=Key}" 
            DependentValueBinding="{Binding Path=Value}">
                <DVC:ColumnSeries.DataPointStyle>
                    <Style TargetType="DVC:ColumnDataPoint">
                        <Setter Property="Background" Value="#00777F"/>
                    </Style>
                </DVC:ColumnSeries.DataPointStyle>

            </DVC:ColumnSeries>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top