Форматирование окна WPF не работает должным образом - PullRequest
0 голосов
/ 10 мая 2009

У меня есть окна WPF, где я хочу, чтобы сечение в верхней части окна было просто высотой всех элементов, содержащихся в нем. В нижней части окна должна быть зона регулируемой высоты. Если окно стало выше, то нижняя часть должна быть растущей, а не верхней.

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

Если вы посмотрите на код xaml ниже, вы увидите, что у меня определены три сетки. Внешняя сетка имеет два определения строки, где для верхней строки установлено значение «Авто», поэтому высоты достаточно, чтобы вместить все содержащиеся в ней элементы. Второй ряд должен быть регулируемым, чтобы позволить ему заполнить остальную часть размера окна.

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

У меня проблема в том, что все окно не заполнено. Нижняя сетка находится только частично на внешнем окне. Почему не все окно заполнено нижней сеткой? Как я могу изменить определение, чтобы учесть это?

<Window x:Class="WPFSample.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid x:Name="LayoutRoot">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition />
        <RowDefinition Height="*" />
        <RowDefinition />
    </Grid.RowDefinitions>
    <Grid x:Name="TopGrid" VerticalAlignment="Top" Width="Auto" Height="Auto" Grid.Row="0">
        <Button Height="23" HorizontalAlignment="Left" Margin="60,0,0,4" Name="button1" VerticalAlignment="Bottom" Width="75">Button</Button>
    </Grid>
    <Grid x:Name="BottomGrid" Width="Auto" Height="Auto" VerticalAlignment="Bottom" Grid.Row="1">
        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
            <RowDefinition />
            <RowDefinition Height="Auto" />
            <RowDefinition />
        </Grid.RowDefinitions>
        <Button Grid.Row="0" Height="23" Margin="60,0,61,4" Name="button2" VerticalAlignment="Bottom">Button</Button>
        <Button Grid.Row="1" Height="23" Margin="60,0,61,4" Name="button3" VerticalAlignment="Bottom">Button</Button>
    </Grid>
</Grid>

1 Ответ

0 голосов
/ 10 мая 2009

Я понял это. У меня было несколько определений строк, кроме двух, которые я думал. После того, как я удалил лишние, форматирование сработало как положено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...