Auto and * are definitely not the same.
When talking about RowDefinitions, Auto means that the size of the elements in that row will determine the height of that row.
* means that the row's height will be as large as possible, but relative to other *-sized rows.
For example, if you have rowdefinitions of <*><Auto><*>, this means the Auto row will be the height that its child elements want to be, and the rest of the grid-height will be evenly devided between the other two rows.
![]()
When talking about RowDefinitions, Auto means that the size of the elements in that row will determine the height of that row.
* means that the row's height will be as large as possible, but relative to other *-sized rows.
For example, if you have rowdefinitions of <*><Auto><*>, this means the Auto row will be the height that its child elements want to be, and the rest of the grid-height will be evenly devided between the other two rows.
This same principle also goes for the Width of ColumnDefinitions.
For example,
<Grid Margin="10" Background="Orange">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Button Grid.Row="0" Content="Button1"/>
<Button Grid.Row="1" Content="Button2"/>
<Button Grid.Row="2" Content="Button3"/>
</Grid>
Result:
If define Height as 1* and 2*, it means the height of 2* is twice the height of 1*.
* is the same as 1*.