我在Silverlight 4图表中有StackedBarSeries
(最新版本)。
我为自定义工具提示创建了一个名为DataPointStyle
的{{1}}。它本身就打破了用于不同条形的标准调色板。
我已将自定义调色板 - 如David Anson's blog中所述应用于图表。
但是,当我为MyDataPointStyle
个对象设置DataPointStyle
时,它不会使用此调色板。
我不确定我错过了什么 - 但大卫特别说:
...它可以使用 DynamicResource(目前仅限 由WPF平台支持)让 用户自定义他们的DataPointStyle 没有不经意间失去了 默认/自定义调色板颜色。 (注意: 一个非常受欢迎的请求!)
不幸的是,我无意中失去了这些颜色 - 我不明白为什么?
SeriesDefinition
答案 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"/>
...