Размещение стилей на элементах управления в стиле сетки - PullRequest
2 голосов
/ 05 июля 2010

Я хочу 'определить, что каждый элемент управления определенного типа в сетке получает стиль.Это легко, просто поместите стили с TargetType в сеточные ресурсы.Но что тогда, если я не хочу повторно использовать эту сетку как стиль?

Я могу создать стиль сетки и установить сеттер для ресурсов, но могу разместить только один стиль.

<Style x:Key="GridStyle" TargetType="Grid">
    <Setter Property="Resources">
        <Setter.Value>
            <Style TargetType="TextBlock" BasedOn="{StaticResource MainText}" />
            <Style TargetType="{x:Type RowDefinition}">
                <Setter Property="Height" Value="Auto"/>
            </Style>
            <Style TargetType="Button" BasedOn="{StaticResource MainButton}" />
        </Setter.Value>
    </Setter>
</Style>

Не сработает, потому что сеттер может вставить только один стиль.

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

1 Ответ

9 голосов
/ 05 июля 2010

Если вы поместите стили в ресурсы внешнего стиля, они будут находиться внутри области:

<Style x:Key="GridStyle" TargetType="Grid">
    <Style.Resources>
        <Style TargetType="TextBlock" BasedOn="{StaticResource MainText}" />
        <Style TargetType="{x:Type RowDefinition}">
            <Setter Property="Height" Value="Auto"/>
        </Style>
        <Style TargetType="Button" BasedOn="{StaticResource MainButton}" />
    </Style.Resources>
</Style>
...