我目前正致力于为图表创建主题。 除了其他方面,我想让BarSeries中的酒吧看起来平坦(没有边框)。 我想让它与隐式样式一起工作,所以我添加了一个Style到BarDataPoint(没有Key,因为它需要通过隐式样式工作)但是它没有被应用。
知道为什么不适用? 是否因为Palette的DataPointStyle样式而被应用?
我要做的是更改BarDataPoint的外观,但仍然应用了调色板中的颜色。并尝试通过纯XAML(如果可能)使这项工作。
为了使这项工作,我看到的唯一方法是通过更改DataPointStyle(在Chart.Palette中的每个ResourceDictionary中)将TargetType设置为BarDataPoint并将Template设置为我的模板实现:
<toolkit:Chart.Palette>
<toolkit:ResourceDictionaryCollection>
<ResourceDictionary>
<Style x:Key="DataPointStyle" TargetType="toolkit:BarDataPoint" BasedOn="{StaticResource BarDataPointStyle}">
<Setter Property="Background" Value="Yellow" />
<Setter Property="BorderBrush" Value="Black" />
</Style>
</ResourceDictionary>
<ResourceDictionary>
<Style x:Key="DataPointStyle" TargetType="toolkit:BarDataPoint" BasedOn="{StaticResource BarDataPointStyle}">
<Setter Property="Background" Value="Red" />
<Setter Property="BorderBrush" Value="Black" />
</Style>
</ResourceDictionary>
</toolkit:ResourceDictionaryCollection>
</toolkit:Chart.Palette>
但是因为这是用于Chart控件的隐式样式,如果我有一个具有不同类型系列的Char控件,那将如何工作,例如带有ColumnSeries的Chart?我不认为DataPointStyle在这种情况下会起作用,因为它的目标是BarDataPoint类型(我想应用程序会崩溃)。
我是否被迫使用不同的键创建不同的图表样式(每个样式都将DataPointStyle更改为目标不同的控件模板)?
但是,对于具有多个不同系列的Chart控件,它将如何工作?
我还尝试使用工具包的隐式样式:调色板资源字典中的BarDataPoint,但是没有成功:
<Setter Property="Palette">
<Setter.Value>
<toolkit:ResourceDictionaryCollection>
<ResourceDictionary>
<SolidColorBrush x:Key="Background"
Color="#FFCA294D" />
<Style TargetType="toolkit:BarDataPoint">
<Setter Property="Template"
Value="{StaticResource BarDataPointTemplate}" />
<Setter Property="Background"
Value="{StaticResource Background}" />
</Style>
我试图看看像JetPack这样的主题,但它们似乎没有做我想要的。
谢谢!