You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell WPF中DataGrid第一列与网格间多余间隙消除咨询

消除WPF DataGrid第一列左侧的间隙

你看到的第一列左侧间隙是WPF DataGrid默认启用的行标题列,这个列默认会保留占位空间(即使不显示行号),导致出现多余空隙。要消除它,只需修改DataGrid的HeadersVisibility属性:

解决步骤

在你的DataGrid配置代码中添加以下一行:

$dataGridView1.HeadersVisibility = [Windows.Controls.DataGridHeadersVisibility]::Column

这个属性的可选值说明:

  • All:默认值,同时显示列标题和行标题
  • Column:仅显示列标题,隐藏行标题列(消除左侧间隙)
  • Row:仅显示行标题
  • None:列标题和行标题都隐藏

修改后的完整代码

$dataGridView1 = New-Object Windows.controls.DataGrid 
$dataGridView1.Name = 'ListBox1'
$dataGridView1.AutoGenerateColumns = $false
$dataGridView1.HorizontalAlignment = "Stretch"
$dataGridView1.VerticalAlignment = "Stretch"
$dataGridView1.ColumnWidth = "*"
$dataGridView1.Margin = New-Object Windows.Thickness(20, 200, 20, 20)

$dataGridView1.SelectionMode = [Windows.Controls.DataGridSelectionMode]::Single
$dataGridView1.CanUserResizeRows = $false
$dataGridView1.CanUserResizeColumns = $false
# 添加这一行消除左侧间隙
$dataGridView1.HeadersVisibility = [Windows.Controls.DataGridHeadersVisibility]::Column

$printerNameColumn = New-Object Windows.Controls.DataGridTextColumn
$printerNameColumn.Header = "Printer Name"
$printerNameColumn.Binding = New-Object Windows.data.Binding("ShareName")
$dataGridView1.Columns.Add($printerNameColumn)

$printerLocationColumn = New-Object Windows.controls.DataGridTextColumn 
$printerLocationColumn.Header = "Location"
$printerLocationColumn.Binding = New-Object Windows.data.Binding("Location")
$dataGridView1.Columns.Add($printerLocationColumn)

内容的提问来源于stack exchange,提问作者Sajith S.K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 04:55:23