如何在WPF中更改AreaSeries的背景

时间:2012-04-16 08:40:28

标签: c# wpf xaml charts

我在使用chartingToolkit:WPF中的AreaSeries时遇到了一个奇怪的问题:

以下是我用来构建图表的代码:

<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:chartingToolkit="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit"
    xmlns:datavis="clr-namespace:System.Windows.Controls.DataVisualization;assembly=System.Windows.Controls.DataVisualization.Toolkit"
    xmlns:chartingprimitives="clr-namespace:System.Windows.Controls.DataVisualization.Charting.Primitives;assembly=System.Windows.Controls.DataVisualization.Toolkit"
    x:Class="leartWPF.ButtonTest"
    x:Name="Window"
    Title="ButtonTest"
    Width="640" Height="480">

    <Grid x:Name="LayoutRoot">
        <chartingToolkit:Chart Margin="56,91,50,72" Title="Chart Title" DataContext="{Binding ElementName=Window, Mode=OneWay}">
                <chartingToolkit:Chart.Template>
                    <ControlTemplate TargetType="{x:Type chartingToolkit:Chart}">
                        <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}">
                            <Grid>
                                <chartingprimitives:EdgePanel Name="ChartArea" Style="{TemplateBinding ChartAreaStyle}" Grid.Row="1" Margin="0">
                                    <Grid Panel.ZIndex="-1" Style="{TemplateBinding PlotAreaStyle}" />
                                    <Border Panel.ZIndex="10" BorderBrush="#FF919191" BorderThickness="1" />
                                </chartingprimitives:EdgePanel>
                            </Grid>
                        </Border>
                    </ControlTemplate>
                </chartingToolkit:Chart.Template>

                <chartingToolkit:LineSeries
                    ItemsSource="{Binding Path=Data}"
                    IndependentValuePath="Date"
                    DependentValuePath="Value"/>
                <chartingToolkit:AreaSeries
                    ItemsSource="{Binding Path=Data}"
                    IndependentValueBinding="{Binding Date}"
                    DependentValueBinding="{Binding Value}">
                    <chartingToolkit:AreaSeries.Background>
                        <RadialGradientBrush Center="0.075,0.015" GradientOrigin="-0.1,-0.1" RadiusY="0.9" RadiusX="1.05">
                        <GradientStop Color="#FFB5D2ED" Offset="1"/>
                        <GradientStop Color="#FF1E4C78"/>
                    </RadialGradientBrush>
                    </chartingToolkit:AreaSeries.Background>
                </chartingToolkit:AreaSeries>
        </chartingToolkit:Chart>
    </Grid>
</Window>

#FFB5D2ED和#FF1E4C78都是蓝色。

Both #FFB5D2EDand #FF1E4C78are blue colors

这是实际图表的样子:

chart of the wrong color

为什么我会这样做,如何更改颜色?

1 个答案:

答案 0 :(得分:0)

我希望这可以帮到你:

   <ch:Chart Margin="56,21,50,72" Title="MyChart" DataContext="{Binding ElementName=Window, Mode=OneWay}" >
                    <ch:Chart.Palette>
                        <datavis:ResourceDictionaryCollection>
                            <ResourceDictionary>
                                <Style x:Key="DataPointStyle" TargetType="Control">
                                    <Setter Property="Background" Value="Blue"/>
                                </Style>
                            </ResourceDictionary>
                            <ResourceDictionary>
                                <Style x:Key="DataPointStyle" TargetType="Control">
                                    <Setter Property="Background" Value="Green"/>
                                </Style>
                            </ResourceDictionary>
                            <ResourceDictionary>
                                <Style x:Key="DataPointStyle" TargetType="Control">
                                    <Setter Property="Background" Value="Red"/>
                                </Style>
                            </ResourceDictionary>
                        </datavis:ResourceDictionaryCollection>
                    </ch:Chart.Palette>

                    <ch:AreaSeries Name="PersonnelArea" ItemsSource="{Binding Path=Key}" IndependentValueBinding="{Binding Key}" DependentValueBinding="{Binding Value}"/>

                    <ch:AreaSeries Name="DefaultArea" ItemsSource="{Binding Path=Key}" IndependentValueBinding="{Binding Key}" DependentValueBinding="{Binding Value}" />
                </ch:Chart>