Подтвердить что ты не робот

Что означает значение 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>
4b9b3361

Ответ 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% сетки