ListView边距

11
我想展示一些具有特定高度(小于屏幕高度)的图片列表,并且我希望它们的宽度与屏幕宽度匹配。 当我将它们放在网格中时,我可以实现所需的效果:
<Grid>
    <Image HorizontalAlignment="Stretch" Source="Assets/someimage.jpg" ></Image>
</Grid>

但是当我将它们放入ListView中时,我发现图像的左右边缘有一定的间距。换句话说,图像不是紧贴边缘的。

这是我代码的(过度)简化版本:

<Grid>
    <ListView>
        <Image HorizontalAlignment="Stretch" Source="Assets/someimage.jpg" ></Image>
    </ListView>
</Grid>
在阅读了其他类似的帖子后,我尝试使用样式来设置ListView的水平对齐属性,但都不起作用。我错过了什么吗?

你是否正在使用绑定(Itemsource)? - Slime recipe
最终,我想使用绑定技术,但现在还没有。我想先尝试看看是否能够实现期望的外观,然后再转向更大更复杂的事情。 - Jason Bourne
不确定是否有帮助,但您可以尝试使用绑定并将ItemTemplate设置为Grid / Image,看看是否解决了您的问题。如果您需要代码示例,请告诉我,我会在答案中发布一个。 - Slime recipe
1个回答

20

首先,当你在listView上添加一张图片时,这个图片就成为了ListViewItem的内容,你可以自动去掉此项应用的边距。

<ListView.ItemContainerStyle>
        <Style TargetType="ListViewItem">
            <Setter Property="Padding" Value="0"/>
            <Setter Property="BorderThickness" Value="0"/>
        </Style>
</ListView.ItemContainerStyle>

即使这样做,您仍然可以有一点余地,这是由列表视图应用的:

ListView BorderThickness="0"
         Padding="-1">

BorderThickness并不足以移除所有的边距,这就是为什么我们将listView的padding设置为-1,您可以根据需要调整此值以更好地适应您的窗口。


太好了!谢谢Bruno。这正是我在寻找的! - Jason Bourne
没问题,很高兴能帮忙。 - Bruno Joaquim
填充应该为“0”,而不是“-1”,因为该值会导致裁剪... - Ivan Ičin

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