全局样式 - WPF
Global style - WPF
我正在尝试应用样式,但遇到了问题。我有这个全局样式(注意我用的是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 中单元格的内容居中。这非常有效。问题是当我想在我的 window.
的 .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>
如果我应用该样式,全局样式(在该单元格中)将停止工作。将文本左对齐。怎么了?谢谢。
据我所知,在 WPF 中,对于任何特定元素,只能应用一种样式。
发生这种情况是因为您从 {StaticResource MetroDataGridCell} 继承了您的样式
将其更改为 {StaticResource {x: Type DataGridCell}} 它应该可以工作。
我正在尝试应用样式,但遇到了问题。我有这个全局样式(注意我用的是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 中单元格的内容居中。这非常有效。问题是当我想在我的 window.
的 .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>
如果我应用该样式,全局样式(在该单元格中)将停止工作。将文本左对齐。怎么了?谢谢。
据我所知,在 WPF 中,对于任何特定元素,只能应用一种样式。
发生这种情况是因为您从 {StaticResource MetroDataGridCell} 继承了您的样式 将其更改为 {StaticResource {x: Type DataGridCell}} 它应该可以工作。