Search code examples
wpfxamlgrid

Is there a way to use WPF Grid without specifying absolute cell coordinates for every item?


My typical form with Grid look like this in XAML:

    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"></ColumnDefinition>
            <ColumnDefinition></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"></RowDefinition>
            <RowDefinition Height="Auto"></RowDefinition>
            <RowDefinition Height="Auto"></RowDefinition>
            <RowDefinition Height="Auto"></RowDefinition>
            <RowDefinition Height="Auto"></RowDefinition>
            <RowDefinition Height="Auto"></RowDefinition>
        </Grid.RowDefinitions>

        ....

        <TextBlock Grid.Row="6" Text="Component"/>
        <TextBox Grid.Row="6" Grid.Column="1" Text="{Binding Component.Name}"></TextBox>
        <TextBlock Grid.Row="7" Text="Bussiness Process"/>
        <TextBox Grid.Row="7" Grid.Column="1" Text="{Binding BusinessProcess.Name}"></TextBox>

    </Grid>

Is there a way to avoid specifying th exact Row/Column coordinates?

Basically, I would like to be able to reorder my controls in the Grid quickly by copying XAML around and now I have to change the coordinates which is awkward. I don't want to reorder them in the Designer because it adds some unnecessary properties to the items.


Solution

  • No, there is no way to avoid Row/Column numbers. If you don't want to install MS Blend, you can try wonderful and free Visual Studio addon from Karl Shifflett: XAML Power Toys. Among other useful things it allows you to play with Grid cells...