Основывая стиль на динамическом ресурсе - PullRequest
3 голосов
/ 22 сентября 2010

Кажется, что-то подобное не допускается. Любое решение?

  <Style x:Key=MyDerivedStyle TargetType="{x:Type Button}"
         BasedOn="{DynamicResource GlobalButtonStyle}" />       

  <Style x:Key="GlobalLabelStyle" TargetType="{x:Type Button}">

Я получаю ошибку: «DynamicResourceExtension» нельзя задать для свойства «BasedOn» типа «Стиль». DynamicResourceExtension может быть установлен только для свойства DependencyProperty объекта DependencyObject.

Если я изменю его на StaticResource, стиль не появится в моем элементе управления.

Ответы [ 2 ]

4 голосов
/ 22 сентября 2010

Два вопроса здесь:

Во-первых, ваш глобальный стиль должен появиться перед вашим производным стилем (либо в том же разделе ресурсов, либо путем объединения в соответствующий ResourceDictionary перед попыткой определить производный стиль.

Кроме того, вам нужно явно определить стиль в вашей кнопке:

<Button x:Name="btnOne"
        Style="{StaticResource MyDerivedStyle}"
        Content="Derived" />

Обратите внимание, что в этом случае вы не создаете динамический ресурс (то есть тот, который необходимо перезагрузить). Он статичен, так как должен использоваться стиль, который используется для BasedOn.

2 голосов
/ 25 февраля 2013

Сначала вам нужно разместить стиль на основе, а затем стиль, который использует этот стиль баса:

<Style x:Key="ComboBoxItemStyleSpecial"
       BasedOn="{StaticResource ComboBoxItemStyleDefault}"
       TargetType="{x:Type ComboBoxItem}">
    <Setter Property="BorderBrush"
            Value="Lime" />
    <Setter Property="BorderThickness"
            Value="3" />
</Style>
<Style x:Key="ComboBoxItemStyleSpecialFont"
       BasedOn="{StaticResource ComboBoxItemStyleSpecial}"
       TargetType="{x:Type ComboBoxItem}">
    <Setter Property="FontSize"
            Value="40" />
    <Setter Property="FontFamily"
            Value="Aharoni" />
</Style>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...