我正在寻找Windows 10中的库存照片应用程序所使用的确切解决方案,以显示尺寸不同的照片列表。基本上,行的高度是固定的,但每个元素的宽度是可变的,由其相对尺寸决定。我以前使用的一个解决方案是使用WrapPanel作为ItemsPanelTemplate。但使用它意味着我在很长一段时间内都失去了UI虚拟化。微软在Photo应用程序中肯定有一个解决方案,但我在任何地方都找不到。
您可以在UWP应用程序中使用XAML Toolkit中的WrapPanel。
或者你可以试着这样做:
<GridView ItemsSource="{Binding}">
<GridView.ItemTemplate>
<DataTemplate>
<Grid Width="100">
<Image Width="100" Height="50" Source="{Binding somesource}" />
</Grid>
</DataTemplate>
</GridView.ItemTemplate>
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<ItemsWrapGrid MaximumRowsOrColumns="8" Orientation="Horizontal" />
</ItemsPanelTemplate>
</GridView.ItemsPanel>
</GridView>
或者你也可以使用VariableSizedWrapGrid(它会让你有不同高度的图像)