2009-09-09 19 views
6

Me gustaría hacer una función ListBox como Grid. Cada vez que se agrega un nuevo elemento, debe verse como si se hubiera agregado un nuevo GridRow (con una altura de estrella). Entonces, si hay dos elementos, cada uno ocupará la mitad del espacio disponible. En algún momento la fila Grid será más pequeño que los artículos MinHeight momento en el que el Grid se expandirá y un ScrollViewer que contiene puede patear.¿Cómo puedo hacer que un ListBoxItem se alargue verticalmente

Verá este comportamiento con una rejilla dentro de una ScrollViewer. Sin embargo, necesito hacer que esto funcione con un ListBox, así que puedo configurar el ItemsSource, crear un DataTemplate y seguir.

El problema con el valor predeterminado ListBoxItemsPanel es que no permitirá que mi primer elemento se expanda para ocupar todo el espacio disponible.

ACTUALIZACIÓN: Aquí está el código para que funcione:

<ListBox VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" Width="Auto" Height="Auto"> 
    <ListBox.ItemsPanel> 
     <ItemsPanelTemplate> 
      <UniformGrid Columns="1"></UniformGrid> 
     </ItemsPanelTemplate> 
    </ListBox.ItemsPanel> 
</ListBox> 

Respuesta

Cuestiones relacionadas