Search code examples
wpfpowershelldatagridview

PowerShell - WPF DataGridView has a small additional gap between first column and the Grid


I am building a PowerShell GUI script with WPF. The DataGrid control has two columns.

$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

$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)

enter image description here

I wanted to get rid of the additional space shown in the image. Is it even possible ?

I am new to PowerShell wpf frameworks


Solution

  • This is the rows headers column. If you don't use them, you can turn off their visibility:

    C-Sharp:

    dataGridView1.HeadersVisibility = DataGridHeadersVisibility.Column;
    

    PowerShell:

    $DataGrid.HeadersVisibility = "column"
    

    P.S. Additional advice: DataGridView is a completely different element from the Win Forms platform. You should not name a DataGrid from WPF this way. This can confuse your interlocutors and complicate mutual understanding.