我试图应用样式,但我遇到了问题。我有这种全球风格(注意我使用MahApps)
<Style TargetType = "{x: Type DataGridCell}"
BasedOn = "{StaticResource MetroDataGridCell}">
<Setter Property = "Template">
<Setter.Value>
<ControlTemplate TargetType = "{x: Type DataGridCell}">
<Grid>
<ContentPresenter HorizontalAlignment = "Center"
VerticalAlignment = "Center" />
</ Grid>
</ ControlTemplate>
</Setter.Value>
</ Setter>
</ Style>
它的作用是将单元格的内容集中在DataGrid中。这非常有效。问题是当我想在窗口的.xaml中嵌套另一个样式时。
<DataGridTextColumn Header="Date" Binding="{Binding Date, Converter={StaticResource DefaultDateTimeToHyphenStyle}, UpdateSourceTrigger=PropertyChanged}">
<DataGridTextColumn.CellStyle>
<Style TargetType="{x:Type DataGridCell}"
BasedOn="{StaticResource MetroDataGridCell}">
<Setter Property="Foreground" Value="{Binding Path=., Converter={StaticResource CellForegroundColorDateConverter}}" />
</Style>
</DataGridTextColumn.CellStyle>
</DataGridTextColumn>
如果我应用该样式,则全局样式(在该单元格中)将停止工作。将文本对齐到左侧。怎么了?谢谢。
答案 0 :(得分:1)
这是因为你从{StaticResource MetroDataGridCell}继承你的风格 将其更改为{StaticResource {x:Type DataGridCell}},它应该可以正常工作。
答案 1 :(得分:0)
据我所知,在WPF中任何特定元素只能应用一个Style。