如何根据网格样式设置网格中任何子元素的前景色?

时间:2012-08-30 13:12:06

标签: wpf xaml styles

如何在网格样式中设置Foreground中所有子元素的Grid颜色?我知道我以前做过这个,但我不记得在哪里或如何。

<Style x:Key="MyGridStyle" TargetType="{x:Type Grid}">
    // I want to set the font color here
</Style>

<Grid Style="{StaticResource MyGridStyle}">
    ...
</Grid>

我知道我可以使用

<Grid.Resources>
    <Style TargetType="{x:Type TextBlock}">
        <Setter Property="Foreground" Value="Red" />
    </Style>
    <Style TargetType="{x:Type TextBox}">
        <Setter Property="Foreground" Value="Red" />
    </Style>
</Grid.Resources>

但是我想在Style中设置此值,而不是在Grid

中设置

2 个答案:

答案 0 :(得分:16)

想出来,我只需要在<Style.Resources>

中设置默认样式
<Style x:Key="MyGridStyle" TargetType="{x:Type Grid}">
    <Style.Resources>
        <Style TargetType="{x:Type TextBlock}">
            <Setter Property="Foreground" Value="Red" />
        </Style>
        <Style TargetType="{x:Type TextBox}">
            <Setter Property="Foreground" Value="Red" />
        </Style>
    </Style.Resources>
</Style>

答案 1 :(得分:16)

怎么样:

<Style x:Key="MyGridStyle" TargetType="{x:Type Grid}">
    <Setter Property="TextElement.Foreground" Value="Red"/>
</Style>