在App.xaml中,我已经设置了所有按钮的样式。
<Style TargetType="Button">
<Setter Property="Margin" Value="3"/>
</Style>
我意识到,如果Button在DataGrid中,那么我就不需要页边距了。我有很多DataGrid,我将这段代码一个接一个地放入其中。
<DataGrid.Resources>
<Style TargetType="Button">
<Setter Property="Margin" Value="0"/>
</Style>
</DataGrid.Resources>
还有更聪明的方法吗?
答案 0 :(得分:1)
您可以为Style
定义DataGrid
,并在其中为特定修改添加子控件样式。
如果要将此Style
添加到所有DataGrid中,则无需定义Key
。
<Style x:Key="dataGrid" TargetType="DataGrid">
<Style.Resources>
<Style TargetType="Button">
<Setter Property="Margin" Value="0" />
</Style>
</Style.Resources>
</Style>
答案 1 :(得分:0)
请在Windows或用户控件级别添加资源文件,以便它将如下所示应用所有子控件,
<Window.Resources>
<Style TargetType="DataGrid">
<Style.Resources>
<Style TargetType="Button">
<Setter Property="Background" Value="Red" />
<Setter Property="Margin" Value="0" />
</Style>
</Style.Resources>
</Style>
<Window.Resources>
或
<UserControl.Resources>
<Style TargetType="DataGrid">
<Style.Resources>
<Style TargetType="Button">
<Setter Property="Background" Value="Red" />
<Setter Property="Margin" Value="0" />
</Style>
</Style.Resources>
</Style>
</UserControl.Resources>
答案 2 :(得分:0)
使用Window.Resources或App.Resources中的键声明样式,如下所示。
<Window.Resources>
<Style TargetType="Button" x:Key="dataGridButtonStyle">
<Setter Property="Margin" Value="3"/>
<Setter Property="Background" Value="Wheat"/>
</Style>
</Window.Resources>
然后使用带有键的StaticResource将样式应用于控件(在此示例中,键名称为dataGridButtonStyle)
<Button Style="{StaticResource ResourceKey= dataGridButtonStyle}" Content="Hello"/>