我在Stackpanel内部有一堆水平方向的列表视图。我希望列表一旦到达Stackpanel的末尾就会换行。
这对我来说似乎很容易,但我似乎无法弄清楚如何。
答案 0 :(得分:2)
StackPanel
没有换行。请改为WrapGrid
。
答案 1 :(得分:0)
使用StackPanel
作为容器,您无法做到这一点。通常我使用Grid
作为父容器。它更灵活。
这样的事情:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<ListView Grid.Column="0"/>
<ListView Grid.Column="1"/>
<ListView Grid.Column="2"/>
</Grid>
答案 2 :(得分:0)
您可以使用ItemsControl进行尝试,并使用WrapGrid作为其ItemsPanel模板。这是我正在使用的代码:
<ItemsControl Width="Auto" Height="Auto" IsHitTestVisible="False" ItemsSource="{Binding AnnotationTypesShown}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" Height="50" Width="Auto" Margin="0,0,5,0">
<Image Source="{Binding IconImage}" Stretch="UniformToFill" Margin="0,0,0,0" Width="25" Height="25"/>
<TextBlock Text="{Binding TypeName}" Width="Auto" Margin="5,10,5,0" Style="{StaticResource DefaultTextBlockStyle}"></TextBlock>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapGrid Orientation="Horizontal" VerticalAlignment="Top"></WrapGrid>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
以下是完整视图的结果
并在包装视图中