2013-01-08 30 views
1

我得有包括Margin0,0,0,20添加的每個項目之間的20像素的差距的項目DataTemplate一個ItemsControl。問題是,當這個控件滾動時,在最後一個項目所產生的最終項目之後會有一個備用20px。入門回合柵欄柱原理,在WPF ItemsControl的

如何在最後刪除/剪切此間隙,或確保它不是首先添加的?即,在列表的開始或結束時,在項目之間應用20px間距,但應用而不是

回答

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>