将图像包装在 GridView 的 3 列中

Wrap Images in 3 column in a GridView

我有一个照片库 GridView:

<GridView x:Name="list1" Padding="5" SelectionMode="Multiple">
    <GridView.ItemsPanel>
        <ItemsPanelTemplate>
            <ItemsWrapGrid MaximumRowsOrColumns="3" Orientation="Horizontal"/>
        </ItemsPanelTemplate>
    </GridView.ItemsPanel>
    <GridView.ItemTemplate>
        <DataTemplate>
            <Image Width="auto" Height="auto" Source="{Binding}"/>
        </DataTemplate>
    </GridView.ItemTemplate>
</GridView>

我希望图像显示在 3 列中。但是使用此代码,图像会在整个屏幕宽度上显示,每行一个。

您需要通过设置宽度或高度(其中之一可以是自动)来限制图像大小。我认为是自动图像大小覆盖了 GridView 的行为方式。

例如,在桌面等更大的屏幕上,尝试设置图片宽度 =“300”,您应该会看到 GridView 每 3 张图片换行一次。如果设备是 Windows 移动设备,请减小宽度以显示至少 3 张图像。

图像宽度不必像上面那样硬连接——您可以使其自适应,例如,通过使用 VisualState management 检测屏幕尺寸以及绑定和值转换器来确定最佳图像宽度.您也可以在代码隐藏中执行此操作,并且您有更多选项可以以一种很好的方式使图像宽度更加流畅和自适应。