ВПФ:Как наследовать значения свойств всем дочерним элементам управления?

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

Вопрос

У меня есть UserControls, содержащие другие элементы управления.Я хочу, чтобы, если я устанавливаю цвет переднего плана для UserControl, все дочерние элементы управления автоматически наследуют его.У меня та же проблема со стилем/размером шрифта.

Могу ли я каким-то образом установить для этих свойств автоматическое/наследование?Можно ли установить все подэлементы управления без цикла?

Это было полезно?

Решение

Вы можете создавать словари ресурсов для глобального определения стилей по умолчанию.

Вы также можете ссылаться на словарь ресурсов или определять стиль в любом объекте.

В любом случае эти стили будут применяться ко всем дочерним объектам, у которых стиль не определен явно...

Пример:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
    <!--Default styles that will apply to any object of the specified type (if it doesn't have style set locally)-->
    <Style TargetType="Label" >
        <Setter Property="FontWeight" Value="Bold"/>
        <Setter Property="Margin" Value="0"/>
        <Setter Property="Padding" Value="0"/>
    </Style>
</ResourceDictionary>

Другие советы

Ознакомьтесь с использованием стилей и настроек BasedOn.

Недавно я написал пример чего-то похожего, расположенного

scroll top