ListView внутри StackPanel внутри Grid не масштабируется

StackOverflow https://stackoverflow.com//questions/20001843

  •  20-12-2019
  •  | 
  •  

Вопрос

в приложении Windows 8.1 (.NET 4.5) У меня есть (через две шаблоны, из-за связывания) сетка, которая содержит стекPanel, который содержит список. Дело в том, что ListView везет масштабирование с доступным пространством, вместо этого показывает полосу прокрутки.

<Grid DataContext="{Binding}">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/> <!-- IF I set MinHeight here, it grows -->
    </Grid.RowDefinitions>
    <TextBlock Grid.Row="0"/>
    <ListView
            Grid.Row="1"
            Margin="10"
            ItemsSource="{Binding ementas}"
            ItemTemplate="{StaticResource temp1}"
            SelectionMode="None"
            IsItemClickEnabled="False"
            IsSwipeEnabled="False">
    </ListView>
</Grid>
.

Шаблон для listView

<StackPanel Width="310" Margin="5,10,5,10" DataContext="{Binding}">
    <TextBlock Text="{Binding data}" Style="{StaticResource TitleTextBlockStyle}"/>
    <ListView SelectionMode="None"
            IsItemClickEnabled="False"
            ItemsSource="{Binding pratos}"
            ItemTemplate="{StaticResource temp2}"
            IsSwipeEnabled="False">
    </ListView>
</StackPanel>
.

и шаблон для второго listview

<TextBlock Text="{Binding descricao}"
    Margin="5"
    Style="{StaticResource BodyTextBlockStyle}"
    TextWrapping="WrapWholeWords"/>
.

Скриншот: Скриншот

Я хотел бы, чтобы ListView с помощью Scrollbar предостоит его размер масштаба для соответствия контентам, и только прокрутите, если он не работает из экрана.

Это было полезно?

Решение

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top