ListView 边距

ListView margins

我正在尝试显示具有特定高度(小于屏幕高度)的图像列表,并且我希望宽度与屏幕宽度匹配。

当我把它们放在一个网格中时,我能够达到预期的效果:

<Grid>
    <Image HorizontalAlignment="Stretch" Source="Assets/someimage.jpg" ></Image>
</Grid>

但是当我将它们放入 ListView 时,我看到图像的左右边缘有一个边距。换句话说,图像不是边到边的。 这是我的代码的(过度)简化版本:

<Grid>
    <ListView>
        <Image HorizontalAlignment="Stretch" Source="Assets/someimage.jpg" ></Image>
    </ListView>
</Grid>

阅读其他类似主题后,我尝试使用 Styles 设置 ListviewItems 的 Horizo​​ntalAlignment 属性 无济于事。我错过了什么?

首先,当您在 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,您可以调整此值以更好地适应您的 Window。