2009-09-09 16 views
6

Mi piacerebbe creare una funzione ListBox come una Grid. Ogni volta che viene aggiunto un nuovo articolo dovrebbe apparire come un nuovo GridRow aggiunto (con un'altezza di stella). Quindi se ci sono due elementi, ognuno di essi occuperà metà dello spazio disponibile. Ad un certo punto la riga Grid sarà più piccolo degli elementi MinHeight a questo punto il Grid si espanderà e uno ScrollViewer contenente può calciare in.Come posso fare un allungamento ListBoxItem verticalmente

Si vedrà questo comportamento con una griglia all'interno di un ScrollViewer. Tuttavia, ho bisogno di farlo funzionare con un ListBox così posso solo impostare il ItemsSource, creare un DataTemplate e andare avanti.

Il problema con il valore predefinito ListBoxItemsPanel è che non consente al mio primo elemento di espandersi per riempire tutto lo spazio disponibile.

UPDATE: Ecco il codice per farlo funzionare:

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

risposta

Problemi correlati