我的数据网格中有很多列的wpf datagrid ..
<DataGrid.Columns>
...
<mui:DataGridTextColumn x:Name="Column27" Width="50" Header="Cabe" Binding="{Binding B4R27,UpdateSourceTrigger=PropertyChanged ,Converter={StaticResource CheckConverter}, Mode=TwoWay}" />
<mui:DataGridTextColumn IsReadOnly="True" x:Name="Column28" Width="50" Header="Jumlah Bahan Pokok" Binding="{Binding B4RJ,UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" >
<DataGridTextColumn.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="Background" Value="#A2D1A2" />
<Setter Property="HorizontalAlignment" Value="Stretch" />
</Style>
</DataGridTextColumn.CellStyle>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="TextAlignment" Value="Center" />
</Style>
</DataGridTextColumn.ElementStyle>
</mui:DataGridTextColumn>
<mui:DataGridTextColumn x:Name="Column29" Width="150" Header="Tulis Nama Pengusaha" Binding="{Binding B4R28,UpdateSourceTrigger=PropertyChanged , Mode=TwoWay}" />
<mui:DataGridTextColumn x:Name="Column30" Width="130" Header="Tulis Alamat Lengkap" Binding="{Binding B4R29,UpdateSourceTrigger=PropertyChanged , Mode=TwoWay}" />
</DataGrid.Columns>
我可以使用此代码使用上面的代码
在datagrid中创建我的文本 <DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="TextAlignment" Value="Center" />
</Style>
</DataGridTextColumn.ElementStyle>
但我想在我的数据网格中的所有列datagridtextcolumn
中使用它。
我怎样才能使它像样式一样,所以我的所有datagridtextcolumn
都有相同的居中对齐文本?
答案 0 :(得分:7)
对于 Style
:
DataGridColumnHeader
<DataGrid.Resources>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="HorizontalContentAlignment" Value="Center" />
</Style>
</DataGrid.Resources>
您也可以将他加入ColumnHeaderStyle
:
<DataGrid.ColumnHeaderStyle>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="HorizontalContentAlignment" Value="Center" />
</Style>
</DataGrid.ColumnHeaderStyle>
如果你有DataGridColumnHeader
的当前样式,那么你需要使用BasedOn
这样的样式继承:
<Style BasedOn="{StaticResource {x:Type DataGridColumnHeader}}" <--- Here may also be the key of your Style
TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="HorizontalContentAlignment" Value="Center" />
</Style>
如果您希望将DataGridCell
的内容设置为居中,请使用此Style
:
<Style TargetType="{x:Type DataGridCell}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridCell}">
<Grid Background="{TemplateBinding Background}">
<ContentPresenter VerticalAlignment="Center"
HorizontalAlignment="Center" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>