1

我有一个 ItemsControl,DataTemplate其中包含一个Margin值,0,0,0,20用于在每个项目之间添加 20 像素的间隙。问题是,当此控件滚动时,由于此边距应用于最终项目,最终项目后有 20px 的空闲。

我如何在最后删除/剪掉这个间隙,或者确保它不是首先添加的?即,在项目之间应用 20px 的间隙,但不在列表的开头或结尾?

4

1 回答 1

2

在 上ItemsPanelTemplate,将Margin属性设置为“0,0,0,-20”。

例子:

<Grid Background="Black">
    <ItemsControl ItemsSource="abcdefg" Background="White" VerticalAlignment="Top">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Border Margin="0,0,0,20" Background="Silver">
                    <TextBlock Text="{Binding}" Margin="5" />
                </Border>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <StackPanel Margin="0,0,0,-20" />
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
    </ItemsControl>
</Grid>
于 2013-01-08T17:51:59.923 回答