Как наследовать / продлить стили из словаря ресурсов?

StackOverflow https://stackoverflow.com/questions/3619712

Вопрос

У меня проблемы с продлением одного из моих стилей, которые я определил в словаре 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 - это в объеме усердного пространства, а не окна, если это имеет смысл.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top