Search code examples
wpfxamlwpfdatagrid

How to make width of datagrid autofit to parent control width


Having a DataGrid inside a grid, I would like to make the datagrid width and datagrid columns auto fit inside the parent control.

So that if user decide to increase window width, how do I make the grid width and its columns also increase?

<Window x:Class="AME.WpfBidouille.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <DataGrid>           
            <DataGrid.Columns>
                <DataGridTextColumn Header="Publication date"/>
                <DataGridTextColumn Header="A very large field to be displayed"/>
                <DataGridTextColumn Header="N° Omega" />
                <DataGridTextColumn Header="Crée le" />
                <DataGridTextColumn Header="Login" />
                <DataGridTextColumn Header="Demandeur" />
                <DataGridTextColumn Header="Type" />
                <DataGridTextColumn Header="Status" />
            </DataGrid.Columns>
        </DataGrid>
    </Grid>
</Window>

Solution

  • Set the Width on each of your columns to "*"

        <DataGrid>           
            <DataGrid.Columns>
                <DataGridTextColumn Width="*" Header="Publication date"/>
                <DataGridTextColumn Width="*" Header="A very large field to be displayed"/>
                <DataGridTextColumn Width="*" Header="N° Omega" />
                <DataGridTextColumn Width="*" Header="Crée le" />
                <DataGridTextColumn Width="*" Header="Login" />
                <DataGridTextColumn Width="*" Header="Demandeur" />
                <DataGridTextColumn Width="*" Header="Type" />
                <DataGridTextColumn Width="*" Header="Status" />
            </DataGrid.Columns>
        </DataGrid>