隐式样式(仍然)不适用于SciChart WPF

时间:2018-06-08 19:51:52

标签: wpf scichart

之前我曾就AxisPanel问过这个问题:

Implicit styles not working in SciCharts WPF?

我开始注意到还有更多问题......不确定这是否已在“最后”更新中修复。

如果我创建一个隐式样式,请说...

<Style TargetType="{x:Type SciCharts:SciChartSurface}" BasedOn="{x:Type SciCharts:SciChartSurface}">
    <Setter Property="BorderBrush" Value="Red" />
</Style>

完全忽略了这种风格。在所有事物的方案中,它被置于实际的SciChart之上,因此我的层次结构是:

<SomeControl>
   <SomeControl.Resources>
       Implicit Styles Here
   </SomeControl.Resources>
   <Some Other Control />
   <SciChartSurface />
</SomeOtherControl>

BorderBrush本身是从DefaultStyle拉出来的,据说是(用Snoop检查)而不是ImplicitStyle(Snoop做了一个很棒的工作,告诉我们它从哪个拉出来 - 但不是哪里那个Style是位于)。 BorderBrush绑定到DefaultStyle并完全忽略Implicit Style中设置的内容。

我不确定是否有我遗漏的东西,但最终的结果是我们想要对我们所有的SciCharts进行一些应用程序范围的设置,并且很少支持这样做,除此之外从字面上看,必须在每个元素上指定一种风格。

我很好奇,根据我上一个问题(上面链接),这是一个“大”问题,不仅仅是AxisPanel并扩展到所有SciChart的控件/元素 - 而且不仅仅是AxisPanel更新了支持DefaultStyleKey?

提前致谢!

1 个答案:

答案 0 :(得分:1)

我发现错误,在这种情况下,它似乎是在键盘和主席之间:P

你需要

    <Style TargetType="{x:Type s:SciChartSurface}" BasedOn="{StaticResource {x:Type s:SciChartSurface}}">
        <Setter Property="BorderBrush" Value="Red" />
        <Setter Property="Margin" Value="10"/>
        <Setter Property="BorderThickness" Value="10"/>
    </Style>

不是

    <Style TargetType="{x:Type s:SciChartSurface}" BasedOn="{x:Type s:SciChartSurface}">
        <Setter Property="BorderBrush" Value="Red" />
        <Setter Property="Margin" Value="10"/>
        <Setter Property="BorderThickness" Value="10"/>
    </Style>

我整理了一个显示how to set implicit styles on SciChartSurface, NumericAxis and AxisPanel here.的示例。

enter image description here

这包含如何隐式设置AxisPanel上的样式:

enter image description here

在构建v5.1.0.11306 as mentioned here中添加了AxisBase.AxisPanelStyle。