绕过WPF Items控件中的fencepost原则
我有一个ItemsControl,它有一个item绕过WPF Items控件中的fencepost原则,wpf,itemscontrol,fencepost,Wpf,Itemscontrol,Fencepost,我有一个ItemsControl,它有一个itemDataTemplate,其中包含一个Margin值0,0,20,以便在每个项目之间添加一个20像素的间距。问题是,当该控件滚动时,最终项后有一个备用的20px,这是由于将此边距应用于最终项造成的 如何在末端移除/剪裁此间隙,或确保未在第一位置添加此间隙?即,在项目之间应用20px的间距,但不在列表的开始或结束处?在ItemsPanelTemplate上,将Margin属性设置为“0,0,0,-20” 例如: <Grid Backgroun
DataTemplate
,其中包含一个Margin
值0,0,20
,以便在每个项目之间添加一个20像素的间距。问题是,当该控件滚动时,最终项后有一个备用的20px,这是由于将此边距应用于最终项造成的
如何在末端移除/剪裁此间隙,或确保未在第一位置添加此间隙?即,在项目之间应用20px的间距,但不在列表的开始或结束处?在
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>