Проблема
Итак, у меня есть WrapPanel, которая содержит динамический список c карт, который вы можете увидеть здесь. Размер карточек изменяется в зависимости от размера их содержимого (в основном названия), и все карточки имеют одинаковый размер по эстетическим причинам c.
![The card List](https://i.stack.imgur.com/oitTD.png)
Я хотел бы иметь возможность добавлять список карточек внутри каждой карточки, отображая несколько ключевых слов, каждое из которых выглядит следующим образом:
![A Card with Status](https://i.stack.imgur.com/drCcW.png)
Проблема I Суть в том, что независимо от того, что я делаю, WrapPanel, который содержит мои ключевые слова, всегда заставляет своего родителя расширять свою ширину, вместо того, чтобы переносить содержимое. На самом деле это вполне логично c, так как я не хочу использовать ничего, кроме размеров "Авто" для моих динамических c карт. Но я хотел бы знать, как заблокировать этот комментарий для внутренней WrapPanel, чтобы он не пытался расширяться, а использовал место, которое он уже имел, и Wrap, если требуется.
Я видел много людей просят аналогичные вещи, но никогда не в динамике c Control.
Resources
Это элемент управления, который создает мой список основных карт:
<ItemsControl x:Name="FightersControl" Grid.IsSharedSizeScope="True">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="ColumnSize" />
</Grid.ColumnDefinitions>
<fight:FightingCharacterTileUserControl
Grid.Column="0" Grid.Row="0"
Margin="10"/>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
This это элемент управления, который создает мой список ключевых слов:
<ItemsControl
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
ItemsSource="{Binding CustomVerboseStatusList.List}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<local:CustomVerboseStatusTile
Margin="5"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel
Orientation="Horizontal"
/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
Я не буду публиковать свой полный контроль карты, поскольку он содержит около 120 строк, но вот главное:
<Grid
Margin="10, 0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
...
<CustomStatusTile
Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2"
/>
</Grid>