Как наследовать / продлить стили из словаря ресурсов?
-
26-09-2019 - |
Вопрос
У меня проблемы с продлением одного из моих стилей, которые я определил в словаре Windows. Один, похоже, применяет стиль моим контролям, как и ожидалось. Однако, если попытаться продлить стиль в одном из моих USERCONTROL, используя свойство BASTOR, он просто переопределяет главную и все базовые стили исчезают. Вот пример:
В словаре ресурсов, названный Dict1.xaml:
<Style TargetType="{x:Type Button}">
<Setter Property="Background" Value="Pink"/>
</Style>
В главном окне.xaml:
<Window.Resources>
<ResourceDictionary Source="dict1.xaml"/>
</Window.Resources>
В пользовательском управлении называется usercontrol1.xaml:
<UserControl.Resources>
<Style BasedOn="{StaticResource {x:Type Button}}"
TargetType="{x:Type Button}">
<Setter Property="FontWeight" Value="Bold"/>
</Style>
</UserControl.Resources>
Стиль в контроле пользователя просто переопределяет один в словаре ресурсов, и шрифт смелый. Если я удаляю стиль во время управления пользователем, стиль в словаре ударов ударов и фона становится розовым. Я хочу оба.
Любые идеи, что я здесь делаю не так?
Благодарю.
Решение
Вам либо нужно добавить словарь в ресурсы USERCONTROL или добавить его в ресурсы app.xaml.
Как и в этом, усердроль не может решить, что StaticResource - это в объеме усердного пространства, а не окна, если это имеет смысл.