c# - 将图像包装在 GridView 的 3 列中

标签 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 列中。但是使用此代码,图像会在整个屏幕宽度上显示,每行一个。

最佳答案

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

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

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

关于c# - 将图像包装在 GridView 的 3 列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34025009/

相关文章:

c# - 使用 .net native 工具链编译后 Uwp 应用程序立即崩溃

c# - C、C++、Java、C# 中的 main()

c# - 球不能在桨/墙上正确弹跳

Yii 中使用 GridView 进行 Ajax 过滤

c# - 从 url 通用 windows 应用程序下载并保存图片

c++ - 在窗口混合现实门户上运行我的解决方案时出现内核调试器错误

c# - 如何绘制正方形的边框?

c# - 在企业库中运行时更改连接字符串

c# - 在 asp.net(C#) 的 DataGrid 中通过超链接传递动态参数

c# - GridView 编辑/更新事件在 1 次单击后未触发