使用gridview的样式

时间:2011-07-29 13:39:59

标签: wpf styles

如何将以下样式用于gridview

<Stylex:Key="{x:TypeCustom:DataGridRowHeader}"TargetType="{x:TypeCustom:DataGridRowHeader}">
<SetterProperty="Background"Value="{StaticResource RowHeaderBackgroundBrush}" />     
<SetterProperty="Template">
    <Setter.Value>
        <ControlTemplate TargetType="{x:TypeCustom:DataGridRowHeader}">
            <Grid>                       
                <Custom:DataGridHeaderBorder IsSelected="{TemplateBinding IsRowSelected}"
                             IsHovered ="{TemplateBinding IsMouseOver}"
                             IsPressed="{TemplateBinding IsPressed}"
                             BorderBrush="{Binding RelativeSource={RelativeSource AncestorType={x:Type Custom:DataGrid}},
                                Path=HorizontalGridLinesBrush}"
                             Background="{TemplateBinding Background}"                                    
                             BorderThickness="0,1,0,0"
                             Padding ="{TemplateBinding Padding}"
                             Orientation="Horizontal"
                             SeparatorVisibility="{TemplateBinding SeparatorVisibility}"
                             SeparatorBrush="{TemplateBinding SeparatorBrush}" Margin="0,-1,0,0">

                    <StackPanel Orientation="Horizontal">
                        <ContentPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
                                          VerticalAlignment="Center"/>
                        <Control SnapsToDevicePixels="false"
                   Visibility="{Binding RelativeSource={RelativeSource AncestorType={x:Type Custom:DataGridRow}},
                            Path=(Validation.HasError),
                   Converter={StaticResource bool2VisibilityConverter}}"
                   Template="{Binding RelativeSource={RelativeSource AncestorType={x:Type Custom:DataGridRow}},
                            Path=ValidationErrorTemplate}" />
                    </StackPanel>
                </Custom:DataGridHeaderBorder>
                <Thumb x:Name="PART_TopHeaderGripper"
           VerticalAlignment="Top" Height="3"
           Style="{StaticResource RowHeaderGripperStyle}"/>
                <Thumb x:Name="PART_BottomHeaderGripper"
           VerticalAlignment="Bottom" Height="3"
           Style="{StaticResource RowHeaderGripperStyle}"/>
            </Grid>

            <ControlTemplate.Triggers>                       
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="Background" Value="{StaticResource RowHeaderIsMouseOverBrush}" />
                </Trigger>
                <Trigger Property="IsRowSelected" Value="True">
                    <Setter Property="Background" Value="{StaticResource RowBackgroundSelectedBrush}" />
                </Trigger>
            </ControlTemplate.Triggers>
        </ControlTemplate>
    </Setter.Value>
</Setter>

1 个答案:

答案 0 :(得分:0)

如果我没弄错的话,你需要的是网格视图中类似的样式标题。我假设您需要的是网格视图列标题样式。为此,您可以使用现有的xaml,并将类名称如x:TypeCustom:DataGridRowHeader更新为x:键入GridViewColumnHeader。

将Custom:DataGridHeaderBorder更改为普通边框。就是这样。希望你有你提到的所有其他静态资源,如RowHeaderGripperStyle。快乐编码:)