2010-09-27 6 views
0

Je le XAML suivant:WrapPanel ItemsPanelTemplate

<Border BorderBrush="Black" 
       BorderThickness="1.5" 
       CornerRadius="5"> 
    <Grid ShowGridLines="True"> 
     <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="Auto"/> 
     <ColumnDefinition/> 
     </Grid.ColumnDefinitions> 
     <ItemsControl composite:RegionManager.RegionName="MainRegion"> 
     <ItemsControl.ItemsPanel> 
      <ItemsPanelTemplate> 
      <WrapPanel/> 
      </ItemsPanelTemplate> 
     </ItemsControl.ItemsPanel> 
     </ItemsControl> 
     <Button Grid.Column="1" HorizontalAlignment="Right" VerticalAlignment="Top" Style="{StaticResource WindowCloseButton}"/> 
    </Grid> 
</Border> 

Quand je remets à la côte ma fenêtre, les éléments du panneau wrap ne pas envelopper.

Il fonctionne lorsque le ItemsControl est pas dans une grille:

<Border BorderBrush="Black" 
       BorderThickness="1.5" 
       CornerRadius="5"> 
    <ItemsControl composite:RegionManager.RegionName="MainRegion"> 
     <ItemsControl.ItemsPanel> 
     <ItemsPanelTemplate> 
      <WrapPanel/> 
     </ItemsPanelTemplate> 
     </ItemsControl.ItemsPanel> 
    </ItemsControl> 
</Border> 

Y at-il un moyen d'obtenir les articles à emballer correctement si ItemsControl est dans une grille?

Répondre

0

problème dans cette ligne:

<ColumnDefinition Width="Auto"/> 

Le mot « Auto » signifie «je redimensionner autant qu'il est nécessaire. Utilisez le numéro fixe ou Asterix:

<Grid.ColumnDefinitions> 
    <ColumnDefinition Width="0.5*"/> 
    <ColumnDefinition/> 
    </Grid.ColumnDefinitions> 
0

Changer votre largeur de la colonne de la grille à * au lieu de l'auto

Ce:

<ColumnDefinition Width="Auto"/> 

Devient:

<ColumnDefinition Width="*"/> 
Questions connexes