2014-09-29 53 views
0

擺脫項之間的垂直空間我有一個ListView,看起來像這樣:在ListView

ListView with vertical space between items.

我試圖刪除的項目之間的空間。

MarginPaddingItemTemplate設置爲零不起作用。

設置HorizontalContentAlignmentVerticalContentAlignmentStretch不起作用。

回答

1

明白了,在ItemContainerStyle必須與其中ContentMargin設置爲0,還有ItemContainerStyleMargin一個ListViewItemPresenter模板必須爲0

的ListView:

<ListView ItemContainerStyle="{StaticResource CustomItemContainerStyle}"> 
<ListView/> 

風格:

<Style x:Key="CustomItemContainerStyle" TargetType="ListViewItem"> 
    <!-- The following two styles fixes the issue of items not expanding 100%. --> 
    <Setter Property="HorizontalContentAlignment" Value="Stretch" /> 
    <Setter Property="VerticalContentAlignment" Value="Stretch" /> 
    <!-- Margin must be zero to get rid of the space between items. Default is 1.--> 
    <Setter Property="Margin" Value="0" /> 
    <!-- ListViewItem styles and templates: http://msdn.microsoft.com/en-us/library/windows/apps/xaml/jj709921.aspx --> 
    <!-- ContentMargin must be zero to get rid of the vertical space between items. Defaults is 4. --> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="ListViewItem"> 
       <ListViewItemPresenter 
        ContentTransitions="{TemplateBinding ContentTransitions}" 
        Padding="{TemplateBinding Padding}" 
        SelectionCheckMarkVisualEnabled="True" 
        CheckHintBrush="{ThemeResource ListViewItemCheckHintThemeBrush}" 
        CheckSelectingBrush="{ThemeResource ListViewItemCheckSelectingThemeBrush}" 
        CheckBrush="{ThemeResource ListViewItemCheckThemeBrush}" 
        DragBackground="{ThemeResource ListViewItemDragBackgroundThemeBrush}" 
        DragForeground="{ThemeResource ListViewItemDragForegroundThemeBrush}" 
        FocusBorderBrush="{ThemeResource ListViewItemFocusBorderThemeBrush}" 
        PlaceholderBackground="{ThemeResource ListViewItemPlaceholderBackgroundThemeBrush}" 
        PointerOverBackground="{ThemeResource ListViewItemPointerOverBackgroundThemeBrush}" 
        SelectedBorderThickness="{ThemeResource ListViewItemCompactSelectedBorderThemeThickness}" 
        SelectedBackground="{ThemeResource ListViewItemSelectedBackgroundThemeBrush}" 
        SelectedForeground="{ThemeResource ListViewItemSelectedForegroundThemeBrush}" 
        SelectedPointerOverBackground="{ThemeResource ListViewItemSelectedPointerOverBackgroundThemeBrush}" 
        SelectedPointerOverBorderBrush="{ThemeResource ListViewItemSelectedPointerOverBorderThemeBrush}" 
        DisabledOpacity="{ThemeResource ListViewItemDisabledThemeOpacity}" 
        DragOpacity="{ThemeResource ListViewItemDragThemeOpacity}" 
        ReorderHintOffset="{ThemeResource ListViewItemReorderHintThemeOffset}" 
        HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" 
        VerticalContentAlignment="Stretch" 
        PointerOverBackgroundMargin="0" 
        ContentMargin="4" /> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

最後截圖:

ListView without vertical space between items.