简体   繁体   English

如何设置特定列标题的样式

[英]How to style a particular Column Header

I have 5 columns Table, ScanCount , Logical Reads etc. This is my sorting handler for all columns: 我有5列Table,ScanCount,Logical Reads等。这是我对所有列的排序处理程序:

<Window.Resources>
    <Style x:Key="GroupHeaderStyle" TargetType="{x:Type GroupItem}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type GroupItem}">
                    <Expander x:Name="exp" IsExpanded="True"
                      Background="White"
                      Foreground="Black">
                        <Expander.Header>
                            <TextBlock Text="{Binding Name}" />
                        </Expander.Header>
                        <ItemsPresenter />
                    </Expander>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
    <Style TargetType="{x:Type DataGridColumnHeader}">
        <EventSetter Event="Click"
                     Handler="GridViewColumnHeaderClickedHandler"/>
    </Style>        
</Window.Resources>

<Grid>
    <DataGrid x:Name="GridView1"                   
      ItemsSource="{Binding listAggregation}"
      CanUserAddRows="False" Margin="0,65,0,46" AllowDrop="True" Drop="Grid_Drop" AutoGenerateColumns="True" >

        <DataGrid.Columns>
            <DataGridTextColumn Header="Table">
                <DataGridTextColumn.HeaderStyle>
                    <Style TargetType="DataGridColumnHeader"
                   BasedOn="{StaticResource {x:Type DataGridColumnHeader}}">
                        <EventSetter Event="PreviewMouseMove" 
                             Handler="DataGridHeader_PreviewMouseMove"/>
                    </Style>
                </DataGridTextColumn.HeaderStyle>
            </DataGridTextColumn>
        </DataGrid.Columns>


        <DataGrid.GroupStyle>
            <GroupStyle ContainerStyle="{StaticResource GroupHeaderStyle}">
                <GroupStyle.Panel>
                    <ItemsPanelTemplate>
                        <DataGridRowsPresenter/>
                    </ItemsPanelTemplate>
                </GroupStyle.Panel>
            </GroupStyle>
        </DataGrid.GroupStyle>

    </DataGrid>

    <Label x:Name="MyGroupDescriptionsList" HorizontalAlignment="Left" Margin="19,10,0,0" VerticalAlignment="Top" Width="151" 
           AllowDrop="True" Drop="Label_Drop" Background="#FFE2D8D8" Height="31"  QueryContinueDrag="Label_QueryContinueDrag" PreviewMouseMove="Label_Mousemove" Content="Drag Your Header Here" FontWeight="Bold"/>
</Grid>

How can i merge both ?? 我如何合并两者? I just want the column header 'Table'(which is the first column) to be able use this drag-drop and rest all columns to use the sorting. 我只希望列标题“ Table”(这是第一列)能够使用此拖放操作,并保留所有列以使用排序。 Columns are created in code behind. 在后面的代码中创建列。 Any suggestions are welcomed. 任何建议都欢迎。 Thanks! 谢谢!

You can used BasedOn to inherit default style. 您可以使用BasedOn继承默认样式。 But for that to work instead of setting default style explicitly to ColumnHeaderStyle , declare it under DataGrid resources section. 但是要使其工作而不是将默认样式显式设置为ColumnHeaderStyle ,请在DataGrid resources部分下声明它。 After that you can used BasedOn to inherit default style. 之后,您可以使用BasedOn继承默认样式。

<DataGrid AutoGenerateColumn="False">
    <DataGrid.Resources>
        <Style TargetType="{x:Type DataGridColumnHeader}">
            <EventSetter Event="Click"
                         Handler="GridViewColumnHeaderClickedHandler"/>
        </Style>
    </DataGrid.Resources>
    <DataGrid.Columns>
        <DataGridTextColumn Header="Table">
            <DataGridTextColumn.HeaderStyle>
                <Style TargetType="DataGridColumnHeader"
                       BasedOn="{StaticResource {x:Type DataGridColumnHeader}}">
                    <EventSetter Event="PreviewMouseMove" 
                                 Handler="DataGridHeader_PreviewMouseMove"/>
                </Style>
            </DataGridTextColumn.HeaderStyle>
        </DataGridTextColumn>
        .........
    </DataGrid.Columns>
</DataGrid>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何在DataGridView C#中合并特定的列标题? - How can merge a particular column header in DataGridView C#? 如何在 UWP CommunityToolkit DataGrid 上设置 header 列的样式 - How do I style the column header on a UWP CommunityToolkit DataGrid 如何在WPF的ListView中将列标题抓取器添加到列标题的自定义样式? - How to add column header gripper to a custom style of column header in ListView in WPF? 如何设置文本框标题的样式? - How to style TextBox Header? 间接使用列标题样式时如何动态切换它们,并在每列中使用BasedOn继承 - How to switch a column header style with another dynamically when they're used indirectly, inherited using BasedOn in each column 更改 ListView 中列标题的字体样式和颜色 - Changing Font Style and Color for Column Header in ListView WPF DataGrid列标题使用自定义样式调整大小 - WPF DataGrid Column Header Resize with Custom Style C# 如何使用 LINQ 获取特定列标题名称下的所有单元格数据 - C# How to use LINQ to grab all cell data under a particular column header name 如何使用GroupBox标题的样式? - How to use style for GroupBox header? 如何更新数据表中的特定列? - How to update a particular column in datatable?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM