Стыковка WPF сверху на вертикальной растяжке с помощью MaxHeight - PullRequest
2 голосов
/ 03 апреля 2011

Я ищу поведение, которое сочетает в себе поведение VerticalAlign="Stretch" и VerticalAlign="Top".Пожалуйста, соблюдайте следующую разметку:

<Border BorderThickness="2" BorderBrush="Black" MaxHeight="200">
    ...
</Border>

Это действует так, как я намереваюсь, пока контейнер Border не станет больше, чем 200 в высоту.В этот момент Border становится высотой 200 и центрируется в своем контейнере.

Я не могу обернуть его в DockPanel с помощью DockPanel.Dock = "Top".Я также не могу установить для его контейнера значение VerticalAlign = "Top".Причина заключается в том, что оба эти фактора приводят к тому, что Border больше не расширяется по вертикали, чтобы заполнить доступное пространство контейнеров (до 200).

Таким образом, чтобы решить эту проблему, должно произойти следующее:

  • Граница должна расширяться, чтобы заполнить доступное пространство ее родителя до тех пор, пока ее максимальная высота не будет достигнута.
  • Верхний край границы должен соответствовать верхнему краю ее родителя.
  • Граница не должна быть<Border>.

1 Ответ

2 голосов
/ 04 апреля 2011

вуаля:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition MaxHeight="200"  />
        <RowDefinition Height="auto" />
    </Grid.RowDefinitions>
    <Border Background="Yellow" />
</Grid>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...