Tengo una pregunta sobre el diseño con una vista de lista dentro de un scrollviewer. Una vez que una vista de lista está dentro de un visualizador de desplazamiento, usa su tamaño máximo y no se desplaza porque el scrollviewer ofrece una cantidad de espacio ilimitada para los controles que están dentro de él. El problema es que los controles que están debajo de una larga lista solo son visibles si el usuario se desplaza hacia abajo y quiero que la vista de lista use solo el espacio que sea necesario y use una barra de desplazamiento. Las imágenes dicen más información que las palabras (los enlaces para las imágenes también dicen mucho ya que mi reputación aún no está en 10. Edit2: bueno, puedo usar un solo enlace, así que copié todas las imágenes en una). Si las listas no es larga todo está bien:WPF: ListView dentro de Scrollviewer; Pregunta de diseño
Imagen 1:
Ahora bien, si la lista es más larga por debajo de los controles de movimiento hacia abajo en la tierra invisible:
Foto 2: ver enlace de foto 1
Lo que yo quiero pasar ahora es la siguiente:
imagen 3: véase el enlace de la imagen 1
Eso en sí mismo no es realmente un problema porque podríamos poner todo en un dockpanal y acoplar los controles a continuación en Dock.Below y Top to Top y dejar que la vista de lista llene el centro con "lastchildfill". Ahora para el problema real. ¿Qué pasa si la ventana se hace más pequeña? Luego, al principio, la vista de lista desaparece y luego también todo lo demás sin tener una barra de desplazamiento para desplazarse a los controles en la parte inferior.
Imagen 4: ver enlace de cuadro 1
La solución ideal Estoy buscando es tener barras de desplazamiento en la ventana (o una ScrollViewer raíz), que nos permitan desplazarse a cada sección de la ventana de esta manera y solo tiene las barras de desplazamiento externas para ser visibles una vez que todo es un tamaño mínimo.
Imagen 5: ver enlace de cuadro 1
alguna idea? demasiadas fotos? aquí hay un poco de XAML para todo el mundo para tratar de hacer que funcione (que es sólo un rápido ejemplo, ventanas ...)
<Window x:Class="WpfTest1.ScrollTestWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
Title="ScrollTestWindow" Height="400" Width="700">
<ScrollViewer >
<DockPanel LastChildFill="True" ScrollViewer.CanContentScroll="True" ScrollViewer.HorizontalScrollBarVisibility="Visible">
<Grid DockPanel.Dock="Top">
<TextBlock Text="Example controls above listview" Background="LightGray" FontSize="30"></TextBlock>
</Grid>
<Grid DockPanel.Dock="Bottom">
<TextBlock Text="Example controls below listview" Background="LightGray" FontSize="30"></TextBlock>
</Grid>
<ListView FontSize="30">
<ListView.View>
<GridView>
<GridViewColumn Width="190" Header="Date" />
<GridViewColumn Width="200" Header="Day Of Week" DisplayMemberBinding="{Binding DayOfWeek}" />
<GridViewColumn Width="120" Header="Year" DisplayMemberBinding="{Binding Year}" />
</GridView>
</ListView.View>
<sys:DateTime>1/1/1</sys:DateTime>
<sys:DateTime>1/1/1</sys:DateTime>
<sys:DateTime>1/1/1</sys:DateTime>
<sys:DateTime>1/1/1</sys:DateTime>
<sys:DateTime>1/1/1</sys:DateTime>
<sys:DateTime>1/1/1</sys:DateTime>
<sys:DateTime>1/1/1</sys:DateTime>
<sys:DateTime>1/1/1</sys:DateTime>
</ListView>
</DockPanel>
</ScrollViewer>
que hace la imagen no.3 partido, ¿verdad? ¿No tiene el mismo problema que en la imagen no.4 cuando su ventana se pone realmente pequeña? – Jan
Sí, configure un MinHeight en la ventana si desea evitar esto. Pero, generalmente, esto queda a discreción del usuario. No creo que pueda hacer mucho en tal caso y no creo que muchos usuarios quieran cambiar el tamaño de la ventana a una altura tan pequeña. – Timores
voy a marcar esto como una respuesta a pesar de que es algo así como "simplemente no dejes que la ventana se ponga tan pequeña". ¿Alguna idea diferente? – Jan