2010-12-20 17 views
22

columnheaders लिए पृष्ठभूमि रंग लागू करने के बाद की पृष्ठभूमि लागू करने के बाद तरह तीर वापस जोड़ने के लिए कैसे, तरह तीर याद आ रही है। इसे वापस कैसे जोड़ें?कॉलम हेडर

उत्तर

35

मुझे लगता है कि आप करने वाले हैं फिर से टेम्पलेट DataGridColumnHeader और वहाँ से इसे जोड़ने के लिए है। यहां एक उदाहरण दिया गया है। आपको प्रेजेंटेशनफ्रेमवर्क का संदर्भ जोड़ना होगा। एयरो

xmlns:Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero" 

<DataGrid ...> 
    <DataGrid.Resources> 
     <Style x:Key="ColumnHeaderGripperStyle" TargetType="{x:Type Thumb}"> 
      <Setter Property="Width" Value="8"/> 
      <Setter Property="Background" Value="Transparent"/> 
      <Setter Property="Cursor" Value="SizeWE"/> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="{x:Type Thumb}"> 
         <Border Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}"/> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
     <Style TargetType="{x:Type DataGridColumnHeader}"> 
      <Setter Property="Background" Value="Blue"/> 
      <Setter Property="BorderBrush" Value="Red"/> 
      <Setter Property="BorderThickness" Value="1,1,1,1"/> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="{x:Type DataGridColumnHeader}"> 
         <Grid> 
          <Themes:DataGridHeaderBorder BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" IsClickable="{TemplateBinding CanUserSort}" IsPressed="{TemplateBinding IsPressed}" IsHovered="{TemplateBinding IsMouseOver}" Padding="{TemplateBinding Padding}" SortDirection="{TemplateBinding SortDirection}" SeparatorBrush="{TemplateBinding SeparatorBrush}" SeparatorVisibility="{TemplateBinding SeparatorVisibility}"> 
           <Grid> 
            <Grid.ColumnDefinitions> 
             <ColumnDefinition Width="Auto"/> 
             <ColumnDefinition Width="*"/> 
            </Grid.ColumnDefinitions> 
            <ContentPresenter Grid.Column="0" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/> 
            <Path x:Name="SortArrow" 
              Grid.Column="1" 
              HorizontalAlignment="Right" VerticalAlignment="Center"           
              Width="8" Height="6" Margin="2,0,5,0" 
              Stretch="Fill" Opacity="0.5" Fill="White" 
              RenderTransformOrigin="0.5,0.4" 
              Visibility="Collapsed" 
              Data="M0,0 L1,0 0.5,1 z" /> 
           </Grid> 
          </Themes:DataGridHeaderBorder> 
          <Thumb x:Name="PART_LeftHeaderGripper" HorizontalAlignment="Left" Style="{StaticResource ColumnHeaderGripperStyle}"/> 
          <Thumb x:Name="PART_RightHeaderGripper" HorizontalAlignment="Right" Style="{StaticResource ColumnHeaderGripperStyle}"/> 
         </Grid> 
         <ControlTemplate.Triggers> 
          <Trigger Property="SortDirection" Value="Ascending"> 
           <Setter TargetName="SortArrow" Property="Visibility" Value="Visible" /> 
           <Setter TargetName="SortArrow" Property="RenderTransform"> 
            <Setter.Value> 
             <RotateTransform Angle="180" /> 
            </Setter.Value> 
           </Setter> 
          </Trigger> 
          <Trigger Property="SortDirection" Value="Descending"> 
           <Setter TargetName="SortArrow" Property="Visibility" Value="Visible" /> 
          </Trigger> 
         </ControlTemplate.Triggers> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </DataGrid.Resources> 
</DataGrid> 
+4

यह इतना जटिल क्यों है? क्या कोई आसान तरीका है? – user496949

+0

@ user496949: मुझे डर है। छंटाई-तीर टेम्पलेट (शीर्ष लेख आदि के साथ) में अंतर्गत आता है, इसलिए उन्हें वापस पाने के लिए हम फिर से टेम्पलेट के लिए पूरी बात करनी होगी। मैंने वैसे भी इस तरह के आसपास एक रास्ता नहीं देखा है। –

+0

हाँ यह यह करने के लिए एक ही रास्ता है। – dex3703

संबंधित मुद्दे