Поиск…


Простая сетка

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition/>
        <RowDefinition/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition/>
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>
    <TextBlock Grid.Column="1" Text="abc"/>
    <TextBlock Grid.Row="1" Grid.Column="1" Text="def"/>
</Grid>

Строки и столбцы определяются с добавлением RowDefinition и ColumnDefinition в соответствующие коллекции.

В Grid может быть небольшое количество детей. Чтобы указать, в какой строке или столбце должен быть помещен Grid.Row Grid.Column в прикрепленные свойства, используются Grid.Row и Grid.Column . Номера строк и столбцов основаны на нуле. Если ни одна строка или столбец не установлена, по умолчанию она равна 0 .

Дети, помещенные в одну и ту же строку и столбец, рисуются в порядке определения. Таким образом, ребенок, определенный последним, будет рисовать выше определенного ранее ребенка.

Дети сетки, охватывающие несколько строк / столбцов

Используя прикрепленные свойства Grid.RowSpan и Grid.ColumnSpan Grid.RowSpan Grid.ColumnSpan Grid могут охватывать несколько строк или столбцов. В следующем примере второй TextBlock будет охватывать второй и третий столбцы Grid .

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition/>
        <ColumnDefinition/>
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>
    <TextBlock Grid.Column="2" Text="abc"/>
    <TextBlock Grid.Column="1" Grid.ColumnSpan="2" Text="def"/>
</Grid>

Синхронизация строк или столбцов нескольких гридов

Ширины строк или ширины столбцов нескольких Grid могут быть синхронизированы путем установки общей SharedSizeGroup для строк или столбцов для синхронизации. Затем родительский контроль где - то в дереве над Grid потребностями сек иметь вложенное свойство Grid.IsSharedSizeScope установлено значение True .

<StackPanel Grid.IsSharedSizeScope="True">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" SharedSizeGroup="MyGroup"/>
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        [...]
    </Grid>
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" SharedSizeGroup="MyGroup"/>
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        [...]
    </Grid>
</StackPanel>

В этом примере первый столбец обеих Grid всегда будет иметь одинаковую ширину, также когда один из них изменяется по его содержимому.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow