Pregunta

En una aplicación de Windows 8.1 (.NET 4.5) tengo (en dos plantillas, debido al enlace) una cuadrícula que contiene un StackPanel que contiene un ListView.La cuestión es que ListView no se escala con el espacio disponible, sino que muestra una barra de desplazamiento.

<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>

Plantilla para 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>

Y la plantilla para el segundo ListView

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

Captura de pantalla:Screenshot

Me gustaría que ListView con la barra de desplazamiento tenga su escala de tamaño para ajustarse al contenido y solo se desplace si se queda sin espacio en la pantalla.

¿Fue útil?

Solución

Este es un problema extremadamente común...el StackPanel hace no cambiar el tamaño de su contenido para que se ajuste al control principal como un Grid hace.La solución es sencilla...no uses un StackPanel excepto por lo más simple de alinear algunas tareas de control.En lugar de esto, utilice un Grid que se ajustará automáticamente a todo el espacio proporcionado por los controles principales.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top