Powered by MSDN

US - English
NEW! Silverlight 5 is available Learn More

  • bitdisaster

    bitdisaster

    Participant

    1474 Points

    339 Posts

    Re: Re: Re: DataGrid ColumnStyle question

    Oct 19, 2008 05:09 AM | LINK

    Yes I'm using a ColumnHeaderStyle.

    Here the code: 

     

    Style x:Key="DarkDataGridColumnHeaderStyle" TargetType="System_Windows_Controls_Primitives:DataGridColumnHeader">
          <Setter Property="Foreground" Value="#FFE2E2E2"/>
          <Setter Property="HorizontalContentAlignment" Value="Center"/>
          <Setter Property="VerticalContentAlignment" Value="Center"/>
          <Setter Property="FontSize" Value="10.5"/>
          <Setter Property="FontWeight" Value="Bold"/>
          <Setter Property="IsTabStop" Value="False"/>
          <Setter Property="SeparatorBrush" Value="#FFC5C5C5"/>
          <Setter Property="Padding" Value="4,4,5,4"/>
     
          <Setter Property="Template">
           <Setter.Value>
            <ControlTemplate TargetType="System_Windows_Controls_Primitives:DataGridColumnHeader">
             <Grid x:Name="Root">
              <Grid.ColumnDefinitions>
               <ColumnDefinition Width="Auto"/>
               <ColumnDefinition Width="*"/>
               <ColumnDefinition Width="Auto"/>
              </Grid.ColumnDefinitions>
              <Grid.RowDefinitions>
               <RowDefinition Height="*"/>
               <RowDefinition Height="*"/>
               <RowDefinition Height="Auto"/>
              </Grid.RowDefinitions>
              <VisualStateManager.VisualStateGroups>
               <VisualStateGroup x:Name="CommonStates">
                <VisualStateGroup.Transitions>
                 <VisualTransition GeneratedDuration="00:00:0.1"/>
                </VisualStateGroup.Transitions>
                <VisualState x:Name="Normal"/>
                <VisualState x:Name="MouseOver">
                 <Storyboard>
                  <ColorAnimationUsingKeyFrames BeginTime="0" Duration="0" Storyboard.TargetName="BackgroundRectangle" Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)">
                   <SplineColorKeyFrame KeyTime="0" Value="#FF448DCA"/>
                  </ColorAnimationUsingKeyFrames>
                  <ColorAnimationUsingKeyFrames BeginTime="0" Duration="0" Storyboard.TargetName="BackgroundGradient" Storyboard.TargetProperty="(Shape.Fill).(GradientBrush.GradientStops)[3].(GradientStop.Color)">
                   <SplineColorKeyFrame KeyTime="0" Value="#7FFFFFFF"/>
                  </ColorAnimationUsingKeyFrames>
                  <ColorAnimationUsingKeyFrames BeginTime="0" Duration="0" Storyboard.TargetName="BackgroundGradient" Storyboard.TargetProperty="(Shape.Fill).(GradientBrush.GradientStops)[2].(GradientStop.Color)">
                   <SplineColorKeyFrame KeyTime="0" Value="#CCFFFFFF"/>
                  </ColorAnimationUsingKeyFrames>
                  <ColorAnimationUsingKeyFrames BeginTime="0" Duration="0" Storyboard.TargetName="BackgroundGradient" Storyboard.TargetProperty="(Shape.Fill).(GradientBrush.GradientStops)[1].(GradientStop.Color)">
                   <SplineColorKeyFrame KeyTime="0" Value="#F2FFFFFF"/>
                  </ColorAnimationUsingKeyFrames>
                 </Storyboard>
                </VisualState>
               </VisualStateGroup>
               <VisualStateGroup x:Name="SortStates">
                <VisualStateGroup.Transitions>
                 <VisualTransition GeneratedDuration="00:00:0.1"/>
                </VisualStateGroup.Transitions>
                <VisualState x:Name="Unsorted"/>
                <VisualState x:Name="SortAscending">
                 <Storyboard>
                  <DoubleAnimationUsingKeyFrames Storyboard.TargetName="SortIcon" Storyboard.TargetProperty="Opacity">
                   <SplineDoubleKeyFrame KeyTime="0" Value="1.0"/>
                  </DoubleAnimationUsingKeyFrames>
                 </Storyboard>
                </VisualState>
                <VisualState x:Name="SortDescending">
                 <Storyboard>
                  <DoubleAnimationUsingKeyFrames Storyboard.TargetName="SortIcon" Storyboard.TargetProperty="Opacity">
                   <SplineDoubleKeyFrame KeyTime="0" Value="1.0"/>
                  </DoubleAnimationUsingKeyFrames>
                  <DoubleAnimationUsingKeyFrames Storyboard.TargetName="SortIconTransform" Storyboard.TargetProperty="ScaleY">
                   <SplineDoubleKeyFrame KeyTime="0" Value="-.9"/>
                  </DoubleAnimationUsingKeyFrames>
                 </Storyboard>
                </VisualState>
               </VisualStateGroup>
              </VisualStateManager.VisualStateGroups>
              <Rectangle x:Name="BackgroundRectangle" Grid.ColumnSpan="2" Grid.RowSpan="2" Fill="Black" Stretch="Fill"/>
              <Rectangle x:Name="BackgroundGradient" Grid.ColumnSpan="2" Grid.RowSpan="2" Stretch="Fill">
               <Rectangle.Fill>
                <!--<LinearGradientBrush EndPoint=".7,1" StartPoint=".7,0">
                 <GradientStop Color="#A1FFFFFF" Offset="0.015"/>
                 <GradientStop Color="#F9FFFFFF" Offset="0.375"/>
                 <GradientStop Color="#E5FFFFFF" Offset="0.6"/>
                 <GradientStop Color="#C6FFFFFF" Offset="1"/>
                </LinearGradientBrush>-->
             <LinearGradientBrush EndPoint="0.7,1" StartPoint="0.7,0">
        <GradientStop Color="#FFA3AEB9"/>
        <GradientStop Color="#FF8399A9" Offset="0.375"/>
        <GradientStop Color="#FF718597" Offset="0.375"/>
        <GradientStop Color="#FF000000" Offset="1"/>
       </LinearGradientBrush>
               </Rectangle.Fill>
              </Rectangle>
              <ContentPresenter Cursor="{TemplateBinding Cursor}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Grid.RowSpan="2" Content="{TemplateBinding Content}"/>
              <Rectangle x:Name="VerticalSeparator" VerticalAlignment="Stretch" Width="1" Visibility="{TemplateBinding SeparatorVisibility}" Grid.Column="2" Grid.RowSpan="2" Fill="{TemplateBinding SeparatorBrush}"/>
              <Path HorizontalAlignment="Left" x:Name="SortIcon" VerticalAlignment="Center" Width="8" Opacity="0" RenderTransformOrigin=".5,.5" Grid.Column="1" Grid.RowSpan="2" Fill="#FF444444" Stretch="Uniform" Data="F1 M -5.215,6.099L 5.215,6.099L 0,0L -5.215,6.099 Z ">
               <Path.RenderTransform>
                <TransformGroup>
                 <ScaleTransform ScaleX=".9" ScaleY=".9" x:Name="SortIconTransform"/>
                </TransformGroup>
               </Path.RenderTransform>
              </Path>
             </Grid>
            </ControlTemplate>
           </Setter.Value>
          </Setter>
          <Setter Property="Background" Value="{x:Null}"/>
         </Style>

    Jan Hannemann
    Research Associate University of Victoria

    Please remember to mark the replies as answers if they answered your question