What does exactly the star in size terms in WPF mean?
In a WPF Grid, Width="*" or Height="*" means proportional sizing. For example: to give 30% to column 1 and 70% to column 2 - <ColumnDefinition Width="3*" /> <ColumnDefinition Width="7*" /> And likewise for rows - <RowDefinition Height="3*" /> <RowDefinition Height="7*" />
The GridView view mode displays a list of data items by binding data fields to columns and by displaying a column header to identify the field. The default GridView style implements buttons as column headers.
A Grid Panel provides a flexible area which consists of rows and columns. In a Grid, child elements can be arranged in tabular form. Elements can be added to any specific row and column by using Grid.Row and Grid.Column properties. By default, a Grid panel is created with one row and one column.
In XAML a Grid is made up of a series of rows and columns. By specifying the row and column of an element within a Grid, you can place and space other elements within a user interface. Rows and columns are defined with the RowDefinition and ColumnDefinition elements.
In a WPF Grid, Width="*"
or Height="*"
means proportional sizing.
For example: to give 30% to column 1 and 70% to column 2 -
<ColumnDefinition Width="3*" /> <ColumnDefinition Width="7*" />
And likewise for rows -
<RowDefinition Height="3*" /> <RowDefinition Height="7*" />
The numbers do not have to be integers.
If the Width for RowDefinition (Height for ColumnDefinition) is omitted, 1* is implied.
In this example, column 1 is 1.5 times wider than column 2 -
<ColumnDefinition Width="1.5*" /> <ColumnDefinition />
You can mix auto-fit and fixed widths with * (proportional) widths; in that case the * columns are apportioned to the remainder after the auto-fit and fixed widths have been calculated -
<Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <!-- Auto-fit to content, 'Hi' --> <ColumnDefinition Width="50.5" /> <!-- Fixed width: 50.5 device units) --> <ColumnDefinition Width="69*" /> <!-- Take 69% of remainder --> <ColumnDefinition Width="31*"/> <!-- Take 31% of remainder --> </Grid.ColumnDefinitions> <TextBlock Text="Hi" Grid.Column="0" />
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With