stack panel
可以垂直增长吗?
例如,
如果有3 stack panel items
,那么,
Item1
Item2
Item3
如果有5 stack panel items
那么,
Item1
Item4
Item2
Item5
Item3
(最多连续,最多可以有n
个项目。如果超过,则会启动一个新行
还有一件事:我正在stack panel items
创建run-time
(代码隐藏)!
this.itemsPanel.Children.Add(item1);
this.itemsPanel.Children.Add(item2);
this.itemsPanel.Children.Add(item3);
this.itemsPanel.Children.Add(item5);
答案 0 :(得分:3)
你想要一个带有WrapPanel的ListBox,但你可能希望你的对象具有相同的大小,宽度和高度,这将等于你最宽和最高的对象,这就是我们使用带有WrapPanel的IsSharedSizeScope网格的原因。
<ListBox Name="ButtonList"
HorizontalContentAlignment="Stretch"
BorderThickness="0"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
Padding="0"
Background="Transparent"
Margin="0"
Grid.IsSharedSizeScope="True"
>
<ListBox.ItemsPanel>
<ItemsPanelTemplate >
<WrapPanel />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<!-- you need the grid, otherwise buttons are different heights depending on the control -->
<Grid.RowDefinitions>
<RowDefinition SharedSizeGroup="row1"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="col1"/>
</Grid.ColumnDefinitions>
<!-- put some control here -->
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>