Мы хотели бы использовать WrapPanel для отображения различного количества кнопок (на самом деле пользовательские элементы управления, которые ведут себя как кнопки).Внутри каждой WrapPanel находится ItemsControl со своими элементами.Часто WrapPanel не отображает все элементы - если их четыре, вы видите только один или два.Поведение не соответствует.
Есть ли что-то, что мы делаем не так?Есть ли какие-либо известные проблемы с использованием такой WrapPanel?
Для XAML это UserControl в нашем главном окне:
<UserControl x:Name="ucCatalogContent" Grid.Row="2">
<local:Catalog_CategoryView />
Это разметка CategoryView,Это имеет ItemsControl.Его элементами являются другие пользовательские элементы управления с WrapPanel внутри:
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"
xmlns:toolkit="http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit"
xmlns:local="clr-namespace:Catalog;assembly=Catalog"
x:Class="Catalog.Catalog_CategoryView"
>
<UserControl.Resources>
<DataTemplate x:Key="CategoryDT" >
<local:Category />
</DataTemplate>
</UserControl.Resources>
<ScrollViewer x:Name="scvCatalogCategoryView"
HorizontalScrollBarVisibility="Disabled">
<!-- This is the item that should be bound to the collection of categories -->
<ItemsControl x:Name="icCategories"
ItemTemplate="{StaticResource CategoryDT}"
>
<local:Category x:Name="item1" />
<local:Category x:Name="item2" />
<local:Category x:Name="item3" />
</ItemsControl>
</ScrollViewer>
И это отдельная категория, где используется WrapPanel:
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"
xmlns:toolkit="http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit"
xmlns:custom="clr-namespace:CustomControlResources;assembly=CustomControlResources"
xmlns:local="clr-namespace:Catalog;assembly=Catalog"
x:Class="Catalog.Category"
>
<UserControl.Resources>
<ItemsPanelTemplate x:Key="CategoryItemPanel">
<toolkit:WrapPanel
VerticalAlignment="Top"
HorizontalAlignment="Stretch"
/>
</ItemsPanelTemplate>
<DataTemplate x:Key="OfferingDT" >
<local:OfferingTile x:Name="offeringTile" />
</DataTemplate>
</UserControl.Resources>
<Grid x:Name="LayoutRoot" Style="{StaticResource ContentRootStyle}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<custom:BlockExpander x:Name="expCategoryExpander"
Title="access [bind me]">
<custom:BlockExpander.BlockExpanderContent>
<ItemsControl x:Name="icServiceOfferingsList"
ItemsPanel="{StaticResource CategoryItemPanel}"
ItemTemplate="{StaticResource OfferingDT}"
>
<local:OfferingTile />
<local:OfferingTile />
<local:OfferingTile />
<local:OfferingTile />
</ItemsControl>
</custom:BlockExpander.BlockExpanderContent>
</custom:BlockExpander>
</Grid>
На этом скриншоте должен быть заголовок на каждом заголовке расширителя (синим треугольником), и каждая группа должна содержать четыре элемента: