Click here to Skip to main content
15,902,636 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I want to merge those columns header gridview as meger columns in excel, it is better if you have example

Thank you so murch.
Posted

1 solution

Before telerik implemented this in their datagrid, I use a style to do this:

XML
<style x:key="DataGridBaseHeaderStyle" targettype="dataprimitives:DataGridColumnHeader" xmlns:x="#unknown">
        <setter property="FontWeight" value="Bold" />
    </style>

    <style x:key="MinMaxDayHeaderStyle" targettype="dataprimitives:DataGridColumnHeader" xmlns:x="#unknown">
          BasedOn="{StaticResource DataGridBaseHeaderStyle}" >
<setter property="Foreground" value="#FF000000" />
        <setter property="HorizontalContentAlignment" value="Left" />
        <setter property="VerticalContentAlignment" value="Center" />
        <setter property="IsTabStop" value="False" />
        <setter property="SeparatorBrush" value="#FF96bbfd" />
        <setter property="Padding" value="8" />
        <setter property="Template">
            <setter.value>
                <controltemplate targettype="dataprimitives:DataGridColumnHeader">                    
                    <grid x:name="Root">
                        <grid.columndefinitions>
                            <columndefinition />
                            <columndefinition width="auto" />
                        </grid.columndefinitions>
                        <visualstatemanager.visualstategroups>
                            <visualstategroup x:name="CommonStates">
                                <visualstate x:name="Normal" />
                                <visualstate x:name="MouseOver">
                                    <storyboard>
                                        <coloranimation duration="0">
                                                    Storyboard.TargetName="BackgroundRectangle" 
                                                    Storyboard.TargetProperty="(Fill).Color" To="#FF448DCA"/>
                                        <coloranimation duration="0">
                                                    Storyboard.TargetName="BackgroundGradient" 
                                                    Storyboard.TargetProperty="(Fill).(GradientStops)[3].Color" To="#7FFFFFFF"/>
                                        <coloranimation duration="0">
                                                    Storyboard.TargetName="BackgroundGradient" 
                                                    Storyboard.TargetProperty="(Fill).(GradientStops)[2].Color" To="#CCFFFFFF"/>
                                        <coloranimation duration="0">
                                                    Storyboard.TargetName="BackgroundGradient" 
                                                    Storyboard.TargetProperty="(Fill).(GradientStops)[1].Color" To="#F2FFFFFF"/>
                                    </coloranimation></coloranimation></coloranimation></coloranimation></storyboard>
                                </visualstate>
                                <visualstate x:name="Pressed">
                                    <storyboard>
                                        <coloranimation duration="0">
                                                    Storyboard.TargetName="BackgroundRectangle" 
                                                    Storyboard.TargetProperty="(Fill).Color" To="#FF448DCA"/>
                                        <coloranimation duration="0">
                                                    Storyboard.TargetName="BackgroundGradient" 
                                                    Storyboard.TargetProperty="(Fill).(GradientStops)[0].Color" To="#D8FFFFFF"/>
                                        <coloranimation duration="0">
                                                    Storyboard.TargetName="BackgroundGradient" 
                                                    Storyboard.TargetProperty="(Fill).(GradientStops)[1].Color" To="#C6FFFFFF"/>
                                        <coloranimation duration="0">
                                                    Storyboard.TargetName="BackgroundGradient" 
                                                    Storyboard.TargetProperty="(Fill).(GradientStops)[2].Color" To="#8CFFFFFF"/>
                                        <coloranimation duration="0">
                                                    Storyboard.TargetName="BackgroundGradient" 
                                                    Storyboard.TargetProperty="(Fill).(GradientStops)[3].Color" To="#3FFFFFFF"/>
                                    </coloranimation></coloranimation></coloranimation></coloranimation></coloranimation></storyboard>
                                </visualstate>
                            </visualstategroup>
                            <visualstategroup x:name="SortStates">
                                <visualstate x:name="Unsorted" />
                                <visualstate x:name="SortAscending" />
                                <visualstate x:name="SortDescending" />
                            </visualstategroup>
                        </visualstatemanager.visualstategroups>
                        <rectangle x:name="BackgroundRectangle" fill="#FF1F3B53" stretch="Fill" grid.columnspan="2" />
                        <rectangle x:name="BackgroundGradient" stretch="Fill" grid.columnspan="2">
                            <rectangle.fill>
                                <lineargradientbrush endpoint=".7,1" startpoint=".7,0">
                                    <gradientstop color="#FCc6defe" offset="0.015" />
                                    <gradientstop color="#F7c6defe" offset="0.375" />
                                    <gradientstop color="#E5c6defe" offset="0.6" />
                                    <gradientstop color="#D1c6defe" offset="1" />
                                </lineargradientbrush>
                            </rectangle.fill>
                        </rectangle>
                        <grid>
                            HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
                          VerticalAlignment="{TemplateBinding VerticalContentAlignment}">
                            <grid.rowdefinitions>
                                <rowdefinition height="20" />
                                <rowdefinition height="1" />
                                <rowdefinition height="20" />
                            </grid.rowdefinitions>
                            <grid.columndefinitions>
                                <columndefinition width="30" />
                                <columndefinition width="1" />
                                <columndefinition width="30" />
                            </grid.columndefinitions>
                            <!-- Row 0 -->
                            <contentpresenter content="{TemplateBinding Content}">
                                          VerticalAlignment="Center" HorizontalAlignment="Center" 
                                          Grid.ColumnSpan="3" />

                            <!-- Row 1 -->
                            <rectangle fill="#FF96bbfd" verticalalignment="Stretch" height="1">
                                   Visibility="Visible" Grid.Row="1" Grid.ColumnSpan="3" />
                            <!-- Row 2 -->
                            <contentpresenter content="Min" grid.row="2" verticalalignment="Center">
                                          HorizontalAlignment="Center" />
                            <rectangle fill="#FF96bbfd" verticalalignment="Stretch" width="1">
                                   Visibility="Visible" Grid.Row="2" Grid.Column="1" />
                            <contentpresenter content="Max" grid.row="2" grid.column="2">
                                          VerticalAlignment="Center" HorizontalAlignment="Center" />
                        </contentpresenter></rectangle></contentpresenter></rectangle></contentpresenter></grid>
                        <rectangle x:name="VerticalSeparator" fill="#FF96bbfd">
                               VerticalAlignment="Stretch" Width="1" Visibility="Visible" 
                               Grid.Row="1" Grid.Column="1"/>
                    </rectangle></grid>
                </controltemplate>
            </setter.value>
        </setter>
    </style>
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900