Неявные стили (все еще) не работают на 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, как упомянуто здесь.

Другие вопросы по тегам