我有一个填充 ObservableCollection 的方法。这个 ObservableCollection 绑定到我的 XAML,并出现在屏幕上。然而,目前它只是向下延伸,一个接一个的图像,如下所示:
我希望图像以网格方式显示,例如每行 5 个,允许用户向下滚动。我怎么能做到这一点?我想要的一个例子:
据我了解,向下扩展可能不被视为“Metro”/“Windows 8 应用程序样式”,如果是这样,我将如何模拟图像中显示的功能,以便溢出向右延伸,让您继续向右滚动?
我目前的代码:
<ItemsControl ItemsSource="{Binding Path=listOfImages}"
HorizontalContentAlignment="Stretch">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel VerticalAlignment="Center">
<Image x:Name="images" Source="{Binding}" Visibility="Visible" Stretch="Fill" Width="200" Height="200"/>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
更新 :
我现在添加了一个 WrapGrid,但它仍然呈现不正确,如下所示:
这是我正在使用的代码:
<ItemsControl ItemsSource="{Binding Path=listOfImages}" Grid.Column="1" Grid.Row="3" Grid.ColumnSpan="5"
HorizontalContentAlignment="Stretch">
<ListView Height="Auto" Width="Auto">
<ItemsPanelTemplate>
<WrapGrid Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="4" VerticalAlignment="Center" Orientation="Horizontal">
<Image x:Name="images" Source="{Binding}" Visibility="Visible" Stretch="Fill" Width="200" Height="200"/>
</WrapGrid>
</ItemsPanelTemplate>
</ListView>
</ItemsControl>
我在这里误解了什么?非常感谢。
更新 :
简单的代码:
<ItemsControl ItemsSource="{Binding Path=listOfImages}">
<WrapGrid Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="4" VerticalAlignment="Center" Orientation="Horizontal">
<Image x:Name="images" Source="{Binding}" Visibility="Visible" Stretch="Fill" Width="200" Height="200"/>
</WrapGrid>
</ItemsControl>