ListView边距

Jas*_*rne 9 c# xaml uwp

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

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

<Grid>
    <Image HorizontalAlignment="Stretch" Source="Assets/someimage.jpg" ></Image>
</Grid>
Run Code Online (Sandbox Code Playgroud)

但是当我把它们放在ListView中时,我发现图像的左右边缘有一个边距.换句话说,图像不是边对边的.这是我的代码的简化版本:

<Grid>
    <ListView>
        <Image HorizontalAlignment="Stretch" Source="Assets/someimage.jpg" ></Image>
    </ListView>
</Grid>
Run Code Online (Sandbox Code Playgroud)

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

Bru*_*uim 16

首先,当您在listView上添加图像时,此图像将成为ListViewItem的内容,您可以删除此项目自动应用的边距.

<ListView.ItemContainerStyle>
        <Style TargetType="ListViewItem">
            <Setter Property="Padding" Value="0"/>
            <Setter Property="BorderThickness" Value="0"/>
        </Style>
</ListView.ItemContainerStyle>
Run Code Online (Sandbox Code Playgroud)

即使这样做,你仍然可以有一点余量,这是由listview应用的:

ListView BorderThickness="0"
         Padding="-1">
Run Code Online (Sandbox Code Playgroud)

BorderThickness它不足以删除所有边距,这就是为什么我们将listView的填充设置为-1,你可以调整这个值以更好地适应你的Window.