Что означает 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>
3 61

3 ответа:

"*" является сокращением для "1*". Это соотношение, так что если у вас есть две строки, одна с "*" и с "10*", первый получает 1 / 11th из доступных и последний получает 10 / 11th пространства.

выше "10*" ненужно - "*" имело бы больше смысла, потому что есть только одна строка, использующая размер на основе соотношения, поэтому любое соотношение будет равняться 100% доступного пространства.

Я нашел информацию ниже от Christian Mosers, чтобы быть полезным, так как авто и фиксированные размеры на других строках ячеек или столбцах будут влиять на поведение * size. См.http://wpftutorial.net/GridLayout.html


основные Фиксированный размер логических блоков (1/96 дюйма)

авто Занимает столько места, сколько необходимо для содержащегося элемента управления

Звезда(*) Занимает как можно больше места как доступный (после заполнять все автоматические и фикчированные определенные размер колонки), пропорционально разделенный над всеми звезд-определенными размер колонками. Так что 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>

в xaml * используется для процента ( % ) так 10* значит 10% от общей сетки. Строка будет использовать 10% сетки