2014-09-29 56 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.