2010-09-27 5 views
0

У меня есть следующий код XAML: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> 

Когда я изменить размер моего окна, элементы в панели обруча не завернуть.

Это работает, когда ItemsControl не в сетке:

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

Есть ли способ, чтобы получить детали правильно завернуть, если ItemsControl находится в сетке?

ответ

0

Проблема в этой строке:

<ColumnDefinition Width="Auto"/> 

Слово «Auto» означает "я изменить размер столько, сколько это необходимо. Используйте фиксированное число или Asterix:

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

Изменение ширины сетки столбцов для * вместо автоматического

Это:

<ColumnDefinition Width="Auto"/> 

Становится:

<ColumnDefinition Width="*"/> 
Смежные вопросы