我有一个网格,其中有一行具有Height="Auto"。
在该行中,我有一个列表视图,该列表视图绑定到显示字符串的列表。
当这些项目出现在列表视图中时,它们周围有一堆额外的空格(如果我设置项目的背景,则文本周围有一条该颜色的窄带,然后在项目之间有一堆空白(。我没有在任何地方设置任何边距或填充,只是绑定到我的集合的基本列表视图。
如何让项目彼此紧挨显示,而不是在它们之间有一堆空格
下面是相关的 XAML:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<ListView ItemsSource="{Binding DisplayItems}" Grid.Row="0" DisplayMemberPath="DisplayString" />
我刚刚在这里回答了一个问题,它可能会帮助你理解发生了什么。按照我的回答,您可以生成ListViewItem
的完整默认样式。
样式中的以下Setter
会影响每个ListViewItem
的间距:
<Setter Property="Padding" Value="11,-1,11,-1" />
<Setter Property="MinWidth" Value="{ThemeResource ListViewItemMinWidth}" />
<Setter Property="MinHeight" Value="{ThemeResource ListViewItemMinHeight}" />
默认情况下,ListViewItemMinWidth
88
,ListViewItemMinHeight
44
。
您当然可以用生成的样式中的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>