有没有办法让Style适用于所有项目而无需声明属性

时间:2012-06-10 10:06:12

标签: wpf xaml styles

我为DataGrid创建了一个自定义样式。我的应用程序中有几个数据网格,我希望这种样式适用于所有这些。

这样做的一种方法是将Style="{StaticResource DataGridDefaultStyle}"添加到所有DataGrids。

但是必须有另一种方法可以做到这一点,类似于添加主题,我会声明样式,它会自动应用于所有DataGrids。

我该怎么做?

4 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

您可以尝试使用implicit style

答案 2 :(得分:2)

您可以像其他人所说的那样使用隐式样式,但是将它放在App.Xaml文件的Application.Resources部分中,这样就可以将样式应用于应用程序中的所有DataGrids。

<Application.Resources>
    <Style TargetType="DataGrid">
        <Setter Property="Background" Value="LightBlue" />
    </Style>
</Application.Resources>

答案 3 :(得分:1)

要创建隐式样式,您不得包含样式的键并指定TargetType。如果这样做,样式将自动应用于指定类型的每个样式。

例如,此代码将自动应用于所有DataGrid元素:

<Style TargetType="DataGrid">
     <!-- style information goes here -->
</Style>