【问题标题】:Extra whitespace appearing around Listview itemsListview 项目周围出现额外的空白
【发布时间】:2017-08-22 06:06:30
【问题描述】:

我有一个网格,其中一行的 Height="Auto"。

在那一行中,我有一个列表视图,它绑定到一个显示字符串的列表。

当这些项目出现在列表视图中时,它们周围会有一堆额外的空白(如果我设置项目的背景,则文本周围会出现该颜色的窄带,然后项目之间会出现一堆空白) .我没有在任何地方设置任何边距或填充,只是绑定到我的集合的基本列表视图。

如何让项目紧挨着显示,而不是在它们之间有一堆空白

这是相关的 XAML:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
        <RowDefinition />
    </Grid.RowDefinitions>
    <ListView ItemsSource="{Binding DisplayItems}" Grid.Row="0" DisplayMemberPath="DisplayString" />

【问题讨论】:

标签: xaml uwp uwp-xaml


【解决方案1】:

我刚刚回答了一个问题here,这可能有助于您了解正在发生的事情。按照我的回答,你可以生成ListViewItemfull默认样式。

样式中的以下Setters正在影响每个ListViewItem的间距:

<Setter Property="Padding" Value="11,-1,11,-1" />
<Setter Property="MinWidth" Value="{ThemeResource ListViewItemMinWidth}" />
<Setter Property="MinHeight" Value="{ThemeResource ListViewItemMinHeight}" />

默认情况下,ListViewItemMinWidth88ListViewItemMinHeight44

您当然可以在生成的样式中将它们全部替换为0,或者直接覆盖您需要的内容而不像这样生成完整样式

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

【讨论】: