如何使用自定义工具提示创建StackedBarSeries而不会丢失标准颜色

时间:2010-05-31 04:22:21

标签: silverlight silverlight-toolkit stackedbarseries

我在Silverlight 4图表中有StackedBarSeries(最新版本)。

我为自定义工具提示创建了一个名为DataPointStyle的{​​{1}}。它本身就打破了用于不同条形的标准调色板。

我已将自定义调色板 - 如David Anson's blog中所述应用于图表。 但是,当我为MyDataPointStyle个对象设置DataPointStyle时,它不会使用此调色板。

我不确定我错过了什么 - 但大卫特别说:

  

...它可以使用   DynamicResource(目前仅限   由WPF平台支持)让   用户自定义他们的DataPointStyle   没有不经意间失去了   默认/自定义调色板颜色。 (注意:   一个非常受欢迎的请求!)

不幸的是,我无意中失去了这些颜色 - 我不明白为什么?

SeriesDefinition

1 个答案:

答案 0 :(得分:4)

线索出现在您从David发布的报价中“当前仅受WPF平台支持”,即Silverlight不支持。

只要您提供自己的DataPointStyle,就可以替换Palette提供的任何样式(默认调色板或自定义调色板)。

修改

以下是它的完成方式。不是为系列或定义的DataPointStyle属性提供样式,而是将其留给托盘。但是,调色板中的样式可以使用Style对象的BasedOn属性来避免重复。所以: -

<UserControl.Resources>
   <Style x:Key="MyDataPointStyle" TargetType="DataPoint">
     <!-- Set up the general style for the points may even include a Template -->
   </Style>

...

<chartingToolkit:Chart.Palette>      
    <dataviz:ResourceDictionaryCollection>      
        <ResourceDictionary>      
            <Style x:Key="DataPointStyle" TargetType="chartingToolkit:BarDataPoint" BasedOn="{StaticResource MyDataPointStyle}" >      
                <Setter Property="Background" Value="Blue"/>      
            </Style>      
        </ResourceDictionary>      
        <ResourceDictionary>      
            <Style x:Key="DataPointStyle" TargetType="chartingToolkit:BarDataPoint" BasedOn="{StaticResource MyDataPointStyle}">      
                <Setter Property="Background" Value="Green"/>      
            </Style>      
        </ResourceDictionary>      
        <ResourceDictionary>      
            <Style x:Key="DataPointStyle" TargetType="chartingToolkit:BarDataPoint" BasedOn="{StaticResource MyDataPointStyle}">      
                <Setter Property="Background" Value="Red"/>      
            </Style>
        </ResourceDictionary>          
    </dataviz:ResourceDictionaryCollection>          
</chartingToolkit:Chart.Palette>          

<chartingToolkit:Chart.Series>          

    <chartingToolkit:StackedBarSeries>          

        <chartingToolkit:SeriesDefinition          
                    IndependentValueBinding="{Binding SKU}"           
                    DependentValueBinding="{Binding Qty}"           
                    Title="Regular"/>

...