5

Codeplex の WPF Datagrid を使用しています。

dg:DataGrid 要素の次の属性を使用して、行のスタイルを設定できます。

しかし、ヘッダーのスタイルを設定するにはどうすればよいでしょうか? スタイルを定義し、たとえば x:Key="DataGridColumnHeaderStyle" を Datagrid 要素で使用する Web 上の例を何百も見つけましたが、どれもうまくいかないようです。

たとえば、この DataGrid で Datagrid Header の背景をオレンジ色に変更するにはどうすればよいですか?

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

3 に答える 3

13

ヘッダーのスタイルを設定できる DataGrid のプロパティもあります。

<DataGrid.ColumnHeaderStyle>
     <Style TargetType="{x:Type DataGridColumnHeader}">
          <Setter Property="FontWeight"
                  Value="Bold" />
     </Style>
</DataGrid.ColumnHeaderStyle>
于 2010-11-09T21:19:30.307 に答える
2

この場合のスタイルは、generic.xaml というファイルにあり、プロジェクトのテーマ フォルダーに配置する必要があります。

それを見つけて開きます。内部には、列ヘッダーの背景を制御するこの行があります

 <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}">

基本的に、テンプレートの別の場所で定義されています。これにより、TemlateBinding が MSDN TemplateBindingに説明されます。

HTH、エリック

于 2009-02-03T12:56:05.503 に答える
0

ここに別のサンプルがあります

  <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>
于 2012-01-26T17:40:18.813 に答える