WPF如何更改DataGrid角以及如何删除dataGrid中的空字段

时间:2015-07-20 11:08:55

标签: wpf datagrid cornerradius

我对DataGrid风格的问题很少。

  1. 我需要更改两个角落,当我尝试通过示例执行此操作时,我的数据会消失,我的代码可能会这样做吗? 我的代码是:

    ...<Style TargetType="{x:Type DataGrid}">
        <Setter Property="Background" Value="#FFFFFF"/>
        <Setter Property="BorderThickness" Value="1"/>
        <Setter Property="BorderBrush" Value="#E6E6E6"/>
    </Style>
    
    <DataGridTextColumn x:Key="price"  Header="Price, €  " FontFamily="Arial" Width="0.3*" Binding="{Binding adress}" IsReadOnly="True"
                         FontSize="18" FontWeight="Normal" Foreground="#4D4D4D">
        <DataGridTextColumn.ElementStyle>
            <Style TargetType="TextBlock">
                <Setter Property="Width" Value="25"/>
                <Setter Property="VerticalAlignment" Value="Center" />
                <Setter Property="HorizontalAlignment" Value="Right"/>
            </Style>
        </DataGridTextColumn.ElementStyle>
        <DataGridTextColumn.HeaderStyle>
            <Style TargetType="{x:Type DataGridColumnHeader}">
                <Setter Property="Background" Value="#FFFFFF"/>
                <Setter Property="BorderThickness" Value="0"/>
                <Setter Property="BorderBrush" Value="#E6E6E6"/>
                <Setter Property="Height" Value="35"/>
                <Setter Property="FontFamily" Value="Arial"/>
                <Setter Property="FontWeight" Value="Bold"/>
                <Setter Property="FontSize" Value="15"/>
                <Setter Property="IsEnabled" Value="False"/>
                <Setter Property="VerticalAlignment" Value="Center"/>
                <Setter Property="HorizontalContentAlignment" Value="Center"/>
            </Style>
        </DataGridTextColumn.HeaderStyle>
    </DataGridTextColumn>
    
    <Style TargetType="DataGridCell">
        <Setter Property="BorderThickness" Value="0"/>
        <Style.Triggers>
            <Trigger Property="DataGrid.IsSelected" Value="True">
                <Setter Property="Background" Value="Red"/>
            </Trigger>
        </Style.Triggers>
    </Style> 
    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="#FFD65E" />
    

    <Grid>
    <DataGrid x:Name="lbPersonList" Margin="30,98,362,30" AlternationCount="2" VerticalScrollBarVisibility="Visible" AutoGenerateColumns="False" 
                  RowHeight="42" GridLinesVisibility="None" HorizontalGridLinesBrush="#E6E6E6" CanUserAddRows="False" 
              HeadersVisibility="Column" >
        <DataGrid.Columns>
            <StaticResource ResourceKey="product"/>
            <StaticResource ResourceKey="unit price"/>
            <StaticResource ResourceKey="quantity"/>
            <StaticResource ResourceKey="price"/>
        </DataGrid.Columns>
    </DataGrid>      
    

  2. 2。

    如何删除这个空字段,我删除了最后一行,所以这个空字段不是行?

    enter image description here

1 个答案:

答案 0 :(得分:1)

您必须通过将<Border>添加到根网格控件来编辑DataGrid的默认ControlTemplate

     <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type DataGrid}">                
                        <Border x:Name="Border" CornerRadius="13" Background="#232323" SnapsToDevicePixels="True"/>
    <Grid>
                        ........
                        .......
    </Grid>
    </Border>
</ControlTemplate>
</Setter.Value>
</Setter>

你可以找到DataGrid的默认ControlTemplate https://msdn.microsoft.com/en-us/library/cc278066(v=vs.95).aspx