2017-01-24 4 views
0

В течение некоторого времени я изо всех сил старался переделать заголовки Gridview. Я хотел бы получить вид простой сетки с границами вокруг заголовка. Изменяя HeaderContainerStyle и HeaderTemplate я в конечном итоге с texbox и границу внутри фактических заголовков вроде этого:Gridview Header Styling

Headers

Я хотел бы, чтобы в конечном итоге с чем-то вроде этого:

Headers

Это то, что я пытался до сих пор:

<GridViewColumn.HeaderTemplate> 
    <DataTemplate> 
     <Border BorderThickness="1 1 0 1" BorderBrush="Black" > 
      <DockPanel LastChildFill="True" > 
       <TextBlock Text="{Binding}" HorizontalAlignment="Stretch"/> 
      </DockPanel> 
     </Border> 
    </DataTemplate> 
</GridViewColumn.HeaderTemplate> 

Что мне нужно изменить, чтобы получить желаемые результаты?

Спасибо

ответ

0

Вы можете изменить внешний вид заголовка столбца, определяя свой собственный пользовательский стиль DataGridColumnHeader. Пожалуйста, обратитесь к следующей разметке образца. Это должно дать вам эту идею.

<DataGrid> 
    <DataGrid.Resources> 
     <Style x:Key="ColumnHeaderGripperStyle" TargetType="{x:Type Thumb}"> 
      <Setter Property="Width" Value="8"/> 
      <Setter Property="Background" Value="Transparent"/> 
      <Setter Property="Cursor" Value="SizeWE"/> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="{x:Type Thumb}"> 
         <Border Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}"/> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </DataGrid.Resources> 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="Header..." Binding="{Binding}"> 
      <DataGridTextColumn.HeaderStyle> 
       <Style TargetType="{x:Type DataGridColumnHeader}"> 
        <Setter Property="Template"> 
         <Setter.Value> 
          <ControlTemplate TargetType="{x:Type DataGridColumnHeader}"> 
           <Grid> 
            <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}"> 
             <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/> 
            </Border> 
            <Thumb x:Name="PART_LeftHeaderGripper" HorizontalAlignment="Left" Style="{StaticResource ColumnHeaderGripperStyle}"/> 
            <Thumb x:Name="PART_RightHeaderGripper" HorizontalAlignment="Right" Style="{StaticResource ColumnHeaderGripperStyle}"/> 
           </Grid> 
          </ControlTemplate> 
         </Setter.Value> 
        </Setter> 
        <Setter Property="Background" Value="LightGreen" /> 
        <Setter Property="Foreground" Value="Maroon" /> 
        <Setter Property="Padding" Value="5" /> 
        <Setter Property="TextBlock.FontWeight" Value="SemiBold" /> 
       </Style> 
      </DataGridTextColumn.HeaderStyle> 
     </DataGridTextColumn> 
    </DataGrid.Columns> 
</DataGrid> 
+0

Ваш пример, используемый с GridViewColumnHeader, выполнил эту работу! Спасибо за помощь! – VladT

Смежные вопросы