Est-ce que quelqu'un sait ou trouve de bons exemples de définition explicite de la couleur de la série de points de données lors de l'utilisation du contrôle de graphique WPFToolkit? Je voudrais définir cela comme un style dans mon XAML.Modification des couleurs par défaut du contrôle de graphique WPFToolkit
2
A
Répondre
6
Vous pouvez définir la palette sur le graphique. Cet exemple concerne une ColumnSeries, mais vous pouvez l'adapter au type que vous utilisez.
<charting:Chart ... Palette="{StaticResource MyPalette}">
La définition palette ressemble à ceci:
<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>
Le "ColumnSeries1Style" et styles "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 brosses comme tu veux. 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>
1
Juste au cas où quelqu'un est intéressé, il existe un moyen plus simple de le faire. Vous avez juste besoin de définir le DataPointStyle dans la ColumnSeries et de modifier la propriété Background.
<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>
BasedOn = "{StaticResource ColumnDataPointStyle}" ne résout pas ... suis-je en train de chercher quelque chose de mal? – knockando
Désolé à ce sujet. ColumnDataPointStyle est un style personnalisé que j'ai défini. Vous pouvez simplement supprimer ce "BasedOn". J'ai mis à jour la réponse. –