Неявные стили (все еще) не работают на SciChart WPF - PullRequest
0 голосов
/ 08 июня 2018

Я задавал этот вопрос ранее, в отношении 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 Ответ

0 голосов
/ 09 июня 2018

Я обнаружил ошибку, в данном случае она появляется между клавиатурой и стулом: 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 здесь. .

enter image description here

Здесь описывается, как неявно установить стиль на AxisPanel:

enter image description here

AxisBase.AxisPanelStyle был добавлен в сборку v5.1.0.11306, как упомянуто здесь .

...