2010-02-24 9 views

Répondre

5

Je suppose que lorsque vous dites "redimensionner", vous voulez dire que vous voulez étirer les éléments dans les deux directions. Pour prendre une ListBox par défaut et étirer les éléments horizontalement tout ce que vous avez besoin est:

<ListBox HorizontalContentAlignment="Stretch"/> 

La valeur par défaut est laissée si tous les ListBoxItems finissent par pousser vers la gauche et dimensionnées individuellement en fonction de leur contenu.

L'étirement vertical nécessite de se débarrasser du StackPanel utilisé pour la mise en page des éléments, car il n'a aucun concept de redimensionnement de ses enfants dans le sens de l'orientation. La chose la plus simple à utiliser est UniformGrid, mais vous pouvez vouloir quelque chose de plus personnalisé en fonction de la façon dont vous voulez que les éléments à la taille les uns par rapport aux autres. Vous devrez également faire la même chose avec le paramètre VerticalContentAlignment (Centre par défaut). Donc, voici une qui va étirer les éléments des deux façons:

<ListBox HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch"> 
    <ListBox.ItemsPanel> 
     <ItemsPanelTemplate> 
      <UniformGrid Columns="1"/> 
     </ItemsPanelTemplate> 
    </ListBox.ItemsPanel> 
</ListBox> 
Questions connexes