Pregunta

Puede alguien ayudarme a entender la alineación tramo de WPF. A menudo me encuentro con problemas en el que necesito un control para rellenar un área, pero nunca entiendo de qué nivel debería poner el VerticalAlignment = "estiramiento". Especialmente cuando se trata de UserControls.

Siempre a resolver el problema al tratar cosas diferentes o poner estiramiento en todos los niveles, pero me gustaría saber cómo hacerlo correctamente.

Vamos a tomar el ejemplo que tengo ahora:

  • Tengo una rejilla con una célula de tamaño fijo (que se puede cambiar de tamaño con un GridSplitter)
  • En esta célula tengo un control de usuario que contiene un StackPanel con un TabControl
  • En el TabControl tengo TabItems que contiene otro UserControl con un ListView

O en una especie de seudo XAML

<ns:MyUserControl1 Grid.Row="0" Grid.Column="0">
    <!-- this is in MyUserControl1 -->
    <StackPanel>
        <TabControl>
            <TabItem>
               <ns:MyUserControl2>
                    <!-- This is in MyUserControl2 -->
                    <ListView/>
               </ns:MyUserControl2>
            </TabItem>
        </TabControl>
    </StackPanel>
</ns:MyUserControl>

Ahora quiero ListView para llenar toda la celda de la cuadrícula (excluyendo el TabControl y los márgenes, por supuesto).

¿Fue útil?

Solución

Su ListView llenará su MyUserControl2 - si quieres que esto encaja dentro de todo el Tab, que necesita para asegurarse de quitar las restricciones altura y anchura dentro del archivo XAML del control de usuario (estos serán por defecto a 300 cada uno)

Edit: Disculpas - me salté la parte importante de su xaml ... El contenedor MyUserControl1 es un StackPanel ... esto va a apilar los controles secundarios y cambiar el tamaño para adaptarse a ellos; Si se reemplaza con un DockPanel (o una rejilla), los controles secundarios llenarán el espacio disponible y le dará el resultado que está después ...

Tener un vistazo a este MSDN artículo ... Esperanza esto ayuda:)

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