我有一个ItemsControl,其项目DataTemplate
包含Margin
值0,0,0,20
,可在每个项目之间添加20像素的差距。问题是,当此控件滚动时,在此边距应用于最终项目的最终项目之后有一个备用的20px。
如何在最后删除/剪裁此间隙,或确保首先不添加?即,在项之间应用20px的间隙,但在列表的开头或结尾不?
答案 0 :(得分: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>