Что означает значение RowDefinition Height = "10 *" в сетке XAML?
Я использую Height = "*" немного для обозначения того, что высота последней строки должна быть заполнена до нижней части сетки.
Но что означает "10 *"?
<Grid Name="mainGrid">
<Grid.RowDefinitions>
<RowDefinition Height="100" />
<RowDefinition Height="40" />
<RowDefinition Height="10*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
</Grid>
Ответы
Ответ 1
"*"
является сокращением для "1*"
. Это соотношение, поэтому, если у вас есть две строки, одна с "*"
и одна с "10*"
, первая получает 1/11-ю из доступных, а последняя получает 10/11-е место.
В приведенном выше примере "10*"
не требуется - "*"
будет иметь больше смысла, потому что есть только одна строка с использованием соотношения на основе отношения, поэтому любое соотношение будет равно 100% доступного пространства.
Ответ 2
Я нашел информацию ниже от Christian Mosers, чтобы быть полезной, так как Auto и фиксированные размеры в других ячейках строк или столбцов будут влиять на поведение * размера. См. http://wpftutorial.net/GridLayout.html
Fixed
Фиксированный размер логических единиц (1/96 дюйма)
Авто
Занимает столько места, сколько необходимо, с помощью встроенного элемента управления
Star (*)
Занимает столько места, сколько доступно (после заполнения всех столбцов автоматического и фиксированного размера), пропорционально разделенных по всем столбцам звездного размера. Таким образом, 3 */5 * означает то же самое, что и 30 */50 *. Помните, что размер звезды не работает, если размер сетки рассчитывается на основе его содержимого.
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="28" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="200" />
</Grid.ColumnDefinitions>
</Grid>
Ответ 3
В xaml *
используется для процента (%), поэтому 10*
означает 10% от общей сетки. Строка будет использовать 10% сетки