列表视图间距(以XAML为单位)

列表视图间距(以XAML为单位),xaml,windows-8,microsoft-metro,Xaml,Windows 8,Microsoft Metro,因此,我在listview中遇到了间距问题,下面是我的代码: <ListView Width="300" ItemsSource="{Binding ChosenDepartment.HoursList}" Grid.Row="1" Grid.Column="1" Margin="100,0,0,0" IsItemClickEnabled="False" SelectionMode="None"> <ListView.ItemTe

因此,我在listview中遇到了间距问题,下面是我的代码:

            <ListView Width="300" ItemsSource="{Binding ChosenDepartment.HoursList}" Grid.Row="1" Grid.Column="1" Margin="100,0,0,0" IsItemClickEnabled="False" SelectionMode="None">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                        <TextBlock Width="125" Text="{Binding Day}" Style="{StaticResource BasicTextStyle}" FontWeight="Bold"/>
                        <TextBlock Width="160" Text="{Binding Time}" Style="{StaticResource BasicTextStyle}"/>
                    </StackPanel>
                </DataTemplate>
            </ListView.ItemTemplate>
            <ListView.ItemContainerStyle>
                <Style TargetType="ListViewItem">
                    <Setter Property="Padding" Value="0"/>
                    <Setter Property="Margin" Value="0"/>
                </Style>
            </ListView.ItemContainerStyle>
        </ListView>
无论我做什么,在StackPanel下面列表项之间都有间距。有足够的空间放两行文字。事实上,如果TextBlock中的文本换行为两行,则会完全填充ListViewItem


我可以调整所有文本块的边距和填充,但它什么也不做。影响ListView项高度的唯一方法是将height属性添加到ItemContainerStyle。如果我硬编码一个高度,它会影响高度,但当然,我不想硬编码高度。

ListViewItems在其模板中有硬编码的边距,以容纳在您通过右键单击或用手指向下滑动选择时添加的边框和视觉指示


如果要删除它们,需要在Blend中编辑它们的模板:右键单击ListView,然后选择编辑附加模板>编辑生成的项目容器ItemContainerStyle>编辑副本。。。和修改模板。

ListViewItems在其模板中具有硬编码的边距,以适应您通过右键单击或用手指向下滑动来选择它们时添加的边框和视觉指示


如果要删除它们,需要在Blend中编辑它们的模板:右键单击ListView,然后选择编辑附加模板>编辑生成的项目容器ItemContainerStyle>编辑副本。。。并修改模板。

Jeremy的回答让我走上了正确的道路,但最终我发现了另一个名为ItemsControl的控件,它没有ListView的所有缺点,正是我所寻找的

Jeremy的回答让我走上了正确的道路,但最终我发现了另一个名为ItemsControl的控件,它没有ListView的所有缺点,正是我所寻找的

基本的文本样式是什么?这必须是我在整个应用程序中使用的稍微修改过的自定义文本样式。但是,我已经完全删除了这个样式,看看它是否改变了什么,但它没有改变。你试过使用它吗?这也是一个很好的方法,可以更容易地找到额外填充的位置。基本的文本样式是什么?我在整个应用程序中使用的自定义文本样式必须稍加修改。但是,我已经完全删除了这个样式,看看它是否改变了什么,但它没有改变。你试过使用它吗?这也是一个很好的方法,它能让你更容易地找到额外的填充物,谢谢你!我在嵌套的listview中使用它,只需要显示列表,没有虚饰。ItemsControl完美地消除了多余的间距,谢谢!谢谢你!我在嵌套的listview中使用它,只需要显示列表,没有虚饰。ItemsControl完美地消除了多余的间距,谢谢!