删除 WPF DataGrid 中的空白列

Posted

技术标签:

【中文标题】删除 WPF DataGrid 中的空白列【英文标题】:Remove the blank column in a WPF DataGrid 【发布时间】:2013-08-15 10:07:35 【问题描述】:

我使用 DataSet 在 WPF (C#) 中填充 DataGrid。结果是:

我想删除左侧的空白列。我想将剩余空间共享给列。预期结果是:

我的 XAML 代码是:

<Window x:Class="RFID.CareerWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="CareerWindow" Height="356" Width="404">
    <Grid>

        <DataGrid x:Name="dg1" HorizontalAlignment="Left" Margin="25,10,0,0" VerticalAlignment="Top" Height="306" Width="355" EnableRowVirtualization="false" EnableColumnVirtualization="false" FontFamily="2  badr" FontSize="20" FlowDirection="RightToLeft" CanUserAddRows="False" CanUserReorderColumns="False"/>

    </Grid>
</Window>

【问题讨论】:

【参考方案1】:

避免设置静态的高度和宽度。

使用ColumnWidth="*" 共享DataGridColumns 之间的空间

<DataGrid x:Name="dg1" ColumnWidth="*"
          HorizontalAlignment="Left" VerticalAlignment="Top" Margin="25,10,0,0"
          EnableRowVirtualization="false" EnableColumnVirtualization="false" 
          FontFamily="2  badr" FontSize="20" FlowDirection="RightToLeft" 
          CanUserAddRows="False" CanUserReorderColumns="False" />

【讨论】:

完美运行!谢谢!现在,您能帮我将所有文本(单元格和标题)居中对齐吗? 请检查此 SO 帖子以对齐单元格文本。 ***.com/questions/3652318/datagrid-text-alignment 此 SO 帖子以对齐标题内容。 ***.com/questions/8810507/… HorizontalAlignment="Left" 是为我做的。【参考方案2】:

您可以使用

设置Grid 的最后一列或一列
<DataGridTextColumn Header="Surname"
                    Width="*"
                    Binding="Binding Path=Surname,Mode=TwoWay" IsReadOnly="True">
  <DataGridTextColumn.ElementStyle>
    <Style TargetType="TextBlock">
      <Setter Property="HorizontalAlignment" Value="Left" />
      <Setter Property="VerticalAlignment" Value="Center" />
    </Style>
  </DataGridTextColumn.ElementStyle>
</DataGridTextColumn>

【讨论】:

以上是关于删除 WPF DataGrid 中的空白列的主要内容,如果未能解决你的问题,请参考以下文章

WPF Datagrid 控制 第一行和第一列之间的空白

WPF datagrid按钮列点击如何获取当前行某单元格的值!

WPF DataGrid 列宽自动和滚动条

如何用代码选中datagrid中的某一行

WPF 中的 Datagrid - 1 列默认排序

如何隐藏 WPF DataGrid 中的列标题?