Неявные стили (все еще) не работают на SciChart WPF
Я задавал этот вопрос раньше, в отношении AxisPanel:
Неявные стили не работают в 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 изумительно говорит нам, из чего он извлекает, но не из того места, где расположен этот стиль). BorderBrush привязан к DefaultStyle и полностью игнорирует все, что установлено в неявном стиле.
Я не уверен, что мне чего-то не хватает, но конечный результат заключается в том, что у нас есть некоторые настройки для всего приложения, которые мы хотели бы сделать для всех наших SciCharts, и очень небольшая поддержка для этого, за исключением буквального наличия указать стиль для каждого элемента.
Мне любопытно, если в соответствии с моим последним вопросом (ссылка выше), что это была "большая" проблема не только для AxisPanel и распространялась на все элементы управления / элементы SciChart, а также была обновлена не только AxisPanel для поддержки DefaultStyleKey?
Заранее спасибо!
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>
Я собрал пример, показывающий, как установить неявные стили на SciChartSurface, NumericAxis и AxisPanel здесь.,
Это содержит, как неявно установить стиль на AxisPanel:
AxisBase.AxisPanelStyle был добавлен в сборку v5.1.0.11306, как упомянуто здесь.