我有以下XAML,它在一行中水平显示四个按钮。
如何让它每行显示三个按钮,并根据需要显示多行?
<ItemsControl ItemsSource="{Binding DataButtons}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Margin="20"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Width="100" Height="100"
Content="{Binding ButtonName}"
Command="{Binding ButtonCommand}"
CommandParameter="{Binding FilePath}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
这听起来像你想要使用的是像'ASh'提到的UniformGrid
,它将允许你将Columns
设置为3并将根据Rows
中有多少项自动缩放ItemsSource
的数量。我发现这比手动堆叠WrapPanel更容易使用。