Изменение цветов по умолчанию для элемента управления диаграммой WPFToolkit

Кто-нибудь знает, как или нашел какие-либо хорошие примеры явной установки цвета ряда точек данных при использовании элемента управления диаграммой WPFToolkit? Я хотел бы установить это как стиль в моем XAML.


person knockando    schedule 13.09.2010    source источник


Ответы (2)


Вы можете установить палитру на графике. Этот пример предназначен для ColumnSeries, но вы можете адаптировать его для любого используемого типа.

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

Определение палитры выглядит так:

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

Стили «ColumnSeries1Style» и «ColumnSeries1Style» определяют фоновую кисть для серии:

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

Вы можете определить кисти, как вам нравится. Вот как получить градиентную заливку, используемую в диаграммах по умолчанию:

<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>
person John Myczek    schedule 13.09.2010
comment
BasedOn={StaticResource ColumnDataPointStyle} не разрешается... я смотрю на что-то не так? - person knockando; 01.10.2010
comment
Извини за это. ColumnDataPointStyle — это пользовательский стиль, который я определил. Вы можете просто удалить этот файл на основе. Я обновил ответ. - person John Myczek; 01.10.2010

На всякий случай, если кому-то интересно, есть более простой способ сделать это. Вам просто нужно установить DataPointStyle в ColumnSeries и изменить свойство 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>
person jigar shah    schedule 16.04.2015