Как изменить цвет и форматирование строки заголовка столбца в сетке данных? - PullRequest
0 голосов
/ 30 апреля 2019

Я пытался найти решения, но большинство устарело и в настоящее время недоступно. Например

_dataGridView.ColumnHeadersDefaultCellStyle.BackColor = Color.Blue;

Колонка больше не используется по умолчанию.

Ответы [ 2 ]

0 голосов
/ 30 апреля 2019
<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>

Здесь вы можете сделать это встроенным, просто установив стиль в нужном столбце.

0 голосов
/ 30 апреля 2019

Для 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}">

Я считаю, что это результат того, о чем вы просите.

enter image description here

...