2014-12-04 2 views
0

Я хотел бы иметь элементы управления один над другим. Один из них должен быть внизу, и над ним должен быть ListView, который должен заполнить все оставшееся пространство. Я попытался добавить их в StackPanel, с VerticalAlignment = «Bottom», но тогда ListView не прокручивается и не заботится о оставшемся пространстве.Расположение приложения для магазина Windows: ListView для заполнения оставшегося пространства

enter image description here

ответ

3

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

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="*" /> 
     <RowDefinition Height="auto" /> 
    </Grid.RowDefinitions> 
    <ListView Grid.Row="0"></ListView> 
    <Button Grid.Row="1" /> 
</Grid> 

Высота = "авто" означает рассчитать высоту на основе содержимого. Height = "*" означает использовать оставшееся пространство (или если есть несколько * s, разделите оставшееся пространство вверх). См. Замечания в документах RowDefinition.Height для получения более подробной информации.

+0

Спасибо, это работает отлично. Интересно, почему в Tutorials никогда не упоминалась автоматическая настройка. – SPQR3

Смежные вопросы