У меня есть страница XAML, которая расщепляется с сеткой следующим образом:ListView правильно изменение размера в универсальное приложение для Windows 10
<Grid Background="Green">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
</Grid>
Первая и третья строка содержит TextBlock
каждый и в автоматический режим -resize до их высоты, а ListView содержится в среднем ряду, и предполагается, что он растянут в пределах области.
Элемент ListView изменяется в зависимости от количества элементов, а не доступной видимой области, которая должна быть выделена для средней строки.
Это имеет 2 побочные эффекты:
- Я не могу прокручивать для просмотра других элементов
- Он раздвигает
TextBlock
в третьем ряду из экрана.
Если я устанавливаю определенную высоту в ListView, он работает так, как ожидалось, но я хочу, чтобы ListView использовал всю область экрана между верхней и нижней строками.
Он отображается как ожидалось в среде IDE, но данные не загружаются, но я могу отчетливо видеть верхнюю и нижнюю строку (зеленый), и я вижу, что ListView растягивается между этими двумя строками.
Я использовал это много раз в прошлом, но с универсальным приложением для Windows 10, поэтому мне интересно, если это новое поведение, о котором я не знаю или это ошибка?
Это полный код без DataTemplate для большей ясности. Чтобы быть ясным, мой DataTemplate отображается правильно, но я просто не могу прокручивать, поскольку нет полосы прокрутки, поскольку список просматривается на основе элементов, а не ограничивается доступной областью средней строки.
<Grid Background="Green">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Text="Top Row" />
<ListView ItemsSource="{Binding Items}"
Grid.Row="1"
Background="Red">
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
....
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<TextBlock Text="bottom row" Grid.Row="2"/>
</Grid>
Как я пробовал с простым * TextBlock * как * DataTemplate *, я не сталкивался с проблемами на устройстве и эмуляторе. Можете ли вы поделиться образцом проекта? – Romasz