【发布时间】:2019-09-19 08:05:32
【问题描述】:
我尝试寻找解决方案,但大多数都已过时且目前不可用。例如
_dataGridView.ColumnHeadersDefaultCellStyle.BackColor = Color.Blue;
不再有 columnheadesdefaultcellstyle。
【问题讨论】:
标签: wpf xaml datagridview wpfdatagrid
我尝试寻找解决方案,但大多数都已过时且目前不可用。例如
_dataGridView.ColumnHeadersDefaultCellStyle.BackColor = Color.Blue;
不再有 columnheadesdefaultcellstyle。
【问题讨论】:
标签: wpf xaml datagridview wpfdatagrid
对于 WPF DataGrid,可以设置一个 ColumnHeaderStyle,您可以在其中更改标题行的外观。
<Style x:Key="FADataGridStyle" TargetType="{x:Type DataGrid}">
<Setter Property="RowHeaderWidth" Value="0"/>
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="GridLinesVisibility" Value="Horizontal"/>
<Setter Property="HorizontalGridLinesBrush" Value="{StaticResource BackgroundColorBrush}"/>
<Setter Property="ColumnHeaderStyle" Value="{DynamicResource FADataGridColumnHeaderStyle}"/>
<Setter Property="SelectionUnit" Value="FullRow"/>
</Style>
<Style x:Key="FADataGridColumnHeaderStyle" TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="Height" Value="50"/>
<Setter Property="FontSize" Value="14"/>
<Setter Property="HorizontalAlignment" Value="Stretch"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="Background" Value="Blue"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="FontFamily" Value="{StaticResource ApplicationLightFont}"/>
<Setter Property="BorderThickness" Value="0,0,0,1"/>
</Style>
现在在 XAML 数据网格定义中设置样式。 (注意 FADataGridStyle)
<DataGrid AutoGenerateColumns="False"
CanUserAddRows="False"
CanUserSortColumns="True"
CanUserReorderColumns="True"
ItemsSource="{Binding Recordings}"
RowHeaderWidth="0"
SelectionMode="Single"
ScrollViewer.IsDeferredScrollingEnabled="True"
Background="{StaticResource SurfaceColorBrush}"
Style="{StaticResource FADataGridStyle}">
我相信这符合您的要求。
【讨论】:
<DataGrid Grid.Column="1" Grid.Row="1" ItemsSource="{Binding ColTips.FilteredPayments}" AutoGenerateColumns="False" IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn Header="Date" Binding="{Binding Path=PaymentDate}">
<DataGridTextColumn.HeaderStyle>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="Background" Value="Red"></Setter>
</Style>
</DataGridTextColumn.HeaderStyle>
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
在这里,您可以通过在所需列上设置样式来内联。
【讨论】: