Estoy usando WPF Datagrid desde Codeplex.

Soy capaz estilo de las filas y con los siguientes atributos en el dg:DataGrid elemento.

Pero ¿cómo estilo de los Encabezados? Me parece 100s de ejemplos en la web que definen los Estilos y las use, por ejemplo, x:Key=»DataGridColumnHeaderStyle» en el Datagrid elemento, pero ninguno de ellos parece funcionar para mí.

¿Cómo puedo simplemente por ejemplo, cambiar el Encabezado de Datagrid fondo naranja en este DataGrid?

<dg:DataGrid AlternatingRowBackground="#ddd" 
    RowBackground="#eee" 
    Name="theGrid1" 
    VerticalAlignment="Stretch" 
    AutoGenerateColumns="False" 
    BorderBrush="#ddd">
...
</dg:DataGrid>

3 Comentarios

  1. 2

    El estilo en este caso es en un archivo llamado genérico.xaml debe ser ubicada en un themems carpeta en su proyecto.

    encontrar y abrir. en el interior se encuentra esta línea que controla el fondo de los encabezados de columna

     <dg:DataGridHeaderBorder SortDirection="{TemplateBinding SortDirection}"
                                         IsHovered="{TemplateBinding IsMouseOver}"
                                         IsPressed="{TemplateBinding IsPressed}"
                                         IsClickable="{TemplateBinding CanUserSort}"
                                         Background="{TemplateBinding Background}"
                                         BorderBrush="{TemplateBinding BorderBrush}"
                                         BorderThickness="{TemplateBinding BorderThickness}"
                                         Padding ="{TemplateBinding Padding}"
                                         SeparatorVisibility="{TemplateBinding SeparatorVisibility}"
    
    
                             SeparatorBrush="{TemplateBinding SeparatorBrush}">

    básicamente definido en otro lugar de la plantilla:
    esto lo explica TemlateBinding para usted
    MSDN TemplateBinding

    HTH,
    Eric

  2. 11

    También hay una propiedad en el DataGrid que permite el estilo de la cabecera:

    <DataGrid.ColumnHeaderStyle>
         <Style TargetType="{x:Type DataGridColumnHeader}">
              <Setter Property="FontWeight"
                      Value="Bold" />
         </Style>
    </DataGrid.ColumnHeaderStyle>
  3. 0

    Aquí es otra muestra

      <DataGrid AutoGenerateColumns="False" Height="200" 
    HorizontalAlignment="Left" Name="dgDownloads" 
    VerticalAlignment="Top" Width="777"  
    Background="Black" RowBackground="Gray"  Foreground="White"
    AlternatingRowBackground="Gray" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
    <DataGrid.Columns>
    <DataGridTextColumn 
    Header="{lex:LocTextExtension Key=Name, Dict=Resources, Assembly=PreShow.Player}"
    Width="220"
    IsReadOnly="True"
    Binding="{Binding Filename}" >
    <DataGridTextColumn.ElementStyle>
    <Style TargetType="TextBlock">
    <Setter Property="TextWrapping" Value="Wrap"/>
    </Style>
    </DataGridTextColumn.ElementStyle>
    <DataGridTextColumn.HeaderStyle>
    <Style TargetType="{x:Type DataGridColumnHeader}">
    <Setter Property="FontWeight"  Value="Bold" />
    <Setter Property="Foreground"  Value="Yellow" />
    <Setter Property="Background"  Value="Black" />
    </Style>
    </DataGridTextColumn.HeaderStyle>
    </DataGridTextColumn>
    <DataGridCheckBoxColumn 
    IsReadOnly="True"
    Header="{lex:LocTextExtension Key=Success, Dict=Resources, Assembly=PreShow.Player}" 
    Width="60"
    Binding="{Binding IsSuccess}"
    IsThreeState="False">
    <DataGridCheckBoxColumn.HeaderStyle>
    <Style TargetType="{x:Type DataGridColumnHeader}">
    <Setter Property="FontWeight"  Value="Bold" />
    <Setter Property="Foreground"  Value="Yellow" />
    <Setter Property="Background"  Value="Black" />
    </Style>
    </DataGridCheckBoxColumn.HeaderStyle>
    </DataGridCheckBoxColumn>
    <DataGridTemplateColumn Header="{lex:LocTextExtension Key=Time, Dict=Resources, Assembly=PreShow.Player}" IsReadOnly="True">
    <DataGridTemplateColumn.CellTemplate>
    <DataTemplate>
    <TextBlock Text="{Binding Downloaded}" Margin="4"/>
    </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
    <DataGridTemplateColumn.HeaderStyle>
    <Style TargetType="{x:Type DataGridColumnHeader}">
    <Setter Property="FontWeight"  Value="Bold" />
    <Setter Property="Foreground"  Value="Yellow" />
    <Setter Property="Background"  Value="Black" />
    </Style>
    </DataGridTemplateColumn.HeaderStyle>
    </DataGridTemplateColumn>
    <DataGridCheckBoxColumn 
    IsReadOnly="True"
    Header="{lex:LocTextExtension Key=IsDownloading, Dict=Resources, Assembly=PreShow.Player}" 
    Width="60"
    Binding="{Binding IsDownloading}"
    IsThreeState="False">
    <DataGridCheckBoxColumn.HeaderStyle>
    <Style TargetType="{x:Type DataGridColumnHeader}">
    <Setter Property="FontWeight"  Value="Bold" />
    <Setter Property="Foreground"  Value="Yellow" />
    <Setter Property="Background"  Value="Black" />
    </Style>
    </DataGridCheckBoxColumn.HeaderStyle>
    </DataGridCheckBoxColumn>
    <DataGridHyperlinkColumn 
    Header="URL" 
    Width="Auto"
    IsReadOnly="True"
    Binding="{Binding Path=URL}"
    TargetName="{Binding Path=URL}">
    <DataGridHyperlinkColumn.ElementStyle>
    <Style TargetType="TextBlock">
    <EventSetter Event="Hyperlink.Click" Handler="OnHyperlinkClick" />
    </Style>
    </DataGridHyperlinkColumn.ElementStyle>
    <DataGridHyperlinkColumn.HeaderStyle>
    <Style TargetType="{x:Type DataGridColumnHeader}">
    <Setter Property="FontWeight"  Value="Bold" />
    <Setter Property="Foreground"  Value="Yellow" />
    <Setter Property="Background"  Value="Black" />
    </Style>
    </DataGridHyperlinkColumn.HeaderStyle>
    </DataGridHyperlinkColumn>
    </DataGrid.Columns>
    </DataGrid>
    • Oh, lex:LocTextExtension! Recientemente me preguntaba que tan popular es que la cosa es. 🙂

Dejar respuesta

Please enter your comment!
Please enter your name here