WrapPanel ItemsPanelTemplate - PullRequest
       0

WrapPanel ItemsPanelTemplate

0 голосов
/ 28 сентября 2010

У меня есть следующий xaml:

<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 находится в сетке?

Ответы [ 2 ]

0 голосов
/ 28 сентября 2010

Измените ширину столбца сетки на * вместо авто

Это :

<ColumnDefinition Width="Auto"/>

Становится :

<ColumnDefinition Width="*"/>
0 голосов
/ 28 сентября 2010

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

<ColumnDefinition Width="Auto"/>

Слово «Авто» означает «Я изменю размеры настолько, насколько это необходимо». Используйте фиксированный номер или звездочку:

  <Grid.ColumnDefinitions>
    <ColumnDefinition Width="0.5*"/>
    <ColumnDefinition/>
  </Grid.ColumnDefinitions>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...