2009-09-09 4 views
6

Je voudrais faire une fonction ListBox comme Grid. Chaque fois qu'un nouvel élément est ajouté, il devrait ressembler à un nouveau GridRow a été ajouté (avec une hauteur d'étoile). Donc, s'il y a deux objets, ils occuperont chacun la moitié de l'espace disponible. À un certain moment la ligne Grid sera plus petite que les éléments MinHeight à quel point le Grid élargira et contenant ScrollViewer peut botter.Comment faire une extension ListBoxItem verticalement

Vous verrez ce comportement avec une grille à l'intérieur d'un ScrollViewer. Cependant, je dois obtenir ce travail avec un ListBox donc je peux juste mettre le ItemsSource, créer un DataTemplate et passer à autre chose.

Le problème avec la valeur par défaut ListBoxItemsPanel est qu'il ne permettra pas à mon premier élément de se développer pour remplir tout l'espace disponible.

MISE À JOUR: Voici le code pour le faire fonctionner:

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

Répondre

Questions connexes