WPF - Как создать стиль, который применяет стили к дочерним типам

Я пытаюсь найти стиль для применения другого стиля к элементам определенного типа. Подобно CSS, где вы бы сделали

div a  
{  
    background-color:red;  
}

Чтобы применить красный фон ко всем тегам & lt; a & gt; элементы, которые содержатся в & lt; div & gt; элементы.

В частности, я пытаюсь заставить все TableCells, содержащиеся в TableRowGroup, с определенным стилем изменить их границы.

У меня есть следующее решение, где каждый стиль ячейки устанавливается индивидуально.

<Table>
    <Table.Columns>
        <TableColumn/>
        <TableColumn/>
    </Table.Columns>

    <Table.Resources>
        <Style x:Key="HeaderStyle" TargetType="{x:Type TableRowGroup}">
            <Setter Property="FontWeight" Value="Normal"/>
            <Setter Property="FontSize" Value="12"/>
        </Style>

        <Style x:Key="HeaderCellStyle" TargetType="{x:Type TableCell}">
            <Setter Property="BorderThickness" Value="0,1,0,1" />
            <Setter Property="BorderBrush" Value="Black" />
        </Style>
    </Table.Resources>

    <TableRowGroup Name="TableColumnHeaders" Style="{StaticResource HeaderStyle}">
        <TableRow>
            <TableCell Style="{StaticResource HeaderCellStyle}">
                <Paragraph>
                    Description
                </Paragraph>
            </TableCell>
            <TableCell Style="{StaticResource HeaderCellStyle}">
                <Paragraph>
                    Amount
                </Paragraph>
            </TableCell>
        </TableRow>
    </TableRowGroup>
</Table>

Это явно не является предпочтительным, поскольку это раздувает xaml, когда есть много клеток.

Я пробовал следующее безуспешно.

<Table.Resources>
    <Style x:Key="HeaderStyle" TargetType="{x:Type TableRowGroup}">
        <Style.Resources>
            <Style TargetType="{x:Type TableCell}">
                <Setter Property="BorderThickness" Value="0,1,0,1" />
                <Setter Property="BorderBrush" Value="Black" />
            </Style>
        </Style.Resources>
        <Setter Property="FontWeight" Value="Normal"/>
        <Setter Property="FontSize" Value="12"/>
    </Style>
</Table.Resources>

Это также не работает по какой-то причине, хотя является действительным

<Table.Resources>
    <Style x:Key="HeaderStyle" TargetType="{x:Type TableRowGroup}">
        <Setter Property="FontWeight" Value="Normal"/>
        <Setter Property="FontSize" Value="12"/>
        <Setter Property="TableCell.BorderThickness" Value="0,1,0,1" />
        <Setter Property="TableCell.BorderBrush" Value="Black" />
    </Style>
</Table.Resources>

Будет несколько групп строк, каждая из которых имеет свой собственный стиль ячейки, и каждая содержит много ячеек. Пожалуйста, скажите мне, что есть лучший способ.

Ответы на вопрос(1)

Ваш ответ на вопрос