在GridView中将图片包装成3列

3

我有一个照片库 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列的方式显示。但是使用这段代码,图片会在整个屏幕宽度上显示,每行只有一张。

1个回答

0

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

例如,在更大的屏幕上,如桌面电脑上,尝试将图像宽度设置为“300”,则应该看到GridView每3个图像换行。如果设备是Windows Mobile,则缩小宽度以至少显示3个图像。

图像宽度不必像上面那样硬编码 - 您可以使其自适应,例如使用 VisualState management检测屏幕尺寸,再结合绑定和值转换器来确定最佳图像宽度。您还可以在codebehind中执行此操作,并且有更多选项可以使图像宽度更加流畅和自适应。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接