在GridView中将图像包裹在3列中

时间:2015-12-01 16:20:36

标签: c# gridview uwp windows-10-mobile

我有一个照片库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 :(得分:0)

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

例如,在像桌面这样的大屏幕上,尝试设置图像宽度=&#34; 300&#34;你应该看到GridView包装每3张图片。如果设备是Windows Mobile,请减小宽度,以便显示至少3张图像。

图像宽度不必像上面那样硬连线 - 您可以使其自适应,例如,使用VisualState management检测屏幕尺寸以及装订和值转换器以确定最佳图像宽度。您也可以在代码隐藏中执行此操作,并且您有更多选项可以使图像宽度更加流畅和自适应。