Глобальный стиль WPF не может быть переопределен

Этот глобальный стиль объявлен в App.xaml:

<Style TargetType="TextBlock">
     <Setter Property="FontFamily" Value="Times New Roman"/>
     <Setter Property="FontSize" Value="20"/>
</Style>   

В окне я попытался переопределить это локально следующим образом:

<Style TargetType="TextBlock" BasedOn="{StaticResource {x:Type TextBlock}}">
     <Setter Property="FontSize" Value="60" />
</Style>

и это:

<Style TargetType="TextBlock">
     <Setter Property="FontSize" Value="60" />
</Style>

но ничего не работает. Я все еще придерживаюсь стиля, настроенного в App.xaml. Кто-нибудь знает, что может мешать этому? Если я удалю этот глобальный элемент из App.xaml, я смогу установить все, что захочу, локально. Если я изменяю значение в глобальном масштабе, оно отражается глобально, поэтому я не думаю, что где-то есть другой глобальный объект, конфликтующий с ним. Я искал TargetType="TextBlock" и ничего не нашел.

Любые идеи?


person Yatrix    schedule 12.12.2011    source источник


Ответы (1)


Попробовал ваш код, и он отлично работает для меня. Где находится ваш оконный стиль? Я скопировал его в Window.Resources, и он отображает шрифт с размером шрифта 60. Если это не сработает, попробуйте свой код в новом пустом проекте.

  <Window.Resources>
    <Style TargetType="TextBlock" BasedOn="{StaticResource {x:Type TextBlock}}">
      <Setter Property="FontSize" Value="60" />
    </Style>
  </Window.Resources>
person SvenG    schedule 12.12.2011
comment
У меня есть глобальное объявление xaml в приложении. Я создал новое окно для тестирования в том же проекте. Я помещаю стиль на уровень ресурсов окна, уровень сетки и уровень списка. - person Yatrix; 12.12.2011
comment
Создал новое решение, и оно сработало, как ожидалось. Я просто понятия не имею, что мне не хватает, что мешает мне сделать то же самое. Знаете ли вы какие-либо настройки проекта или настройки решения, которые делают их необратимыми? Это было проблемой еще до того, как я начал, и я хотел бы найти решение, помимо создания локального стиля на всех 50 экранах. - person Yatrix; 12.12.2011
comment
Нет, у меня нет идеи. Но здесь есть аналогичная проблема: stackoverflow.com/questions/2524864/ Возможно, вы можете найти там подсказку. Я бы попытался поработайте с объединенными словарями и посмотрите, повторяется ли такое поведение - person SvenG; 13.12.2011
comment
Я видел это и пробовал это решение. Это запрещено. Впрочем, спасибо. - person Yatrix; 13.12.2011
comment
Это не решило мою проблему, но я думаю, что моя проблема заключается в чем-то другом, а не в моем коде - просто нужно выяснить, в чем. - person Yatrix; 14.12.2011