如何在ListView的项之间添加间距?

12

我希望能够在其项目之间添加距离,这样我就可以在其上执行绑定操作。

<ListView Margin="0,22,0,0" x:Name="ListViewImages"   MouseLeftButtonDown="ListViewImages_MouseLeftButtonDown"
         SelectionMode="Extended" ScrollViewer.CanContentScroll="True" ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.HorizontalScrollBarVisibility="Disabled" local:ListBoxExtention.IsRectSelectionEnabled="True">
        <ListView.ItemsPanel>
            <ItemsPanelTemplate>
                <WrapPanel Name="WraPanel1" Margin="5" />
            </ItemsPanelTemplate>
        </ListView.ItemsPanel>
        <ListView.ItemTemplate>
            <DataTemplate>
                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="5" ></RowDefinition>
                        <RowDefinition Height="150"></RowDefinition>
                        <RowDefinition Height="15" ></RowDefinition>
                        <RowDefinition Height="5" ></RowDefinition>
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="7" x:Name="columnLeft"></ColumnDefinition>
                        <ColumnDefinition Width="100" x:Name="columnImage"></ColumnDefinition>
                        <ColumnDefinition Width="7" x:Name="columnRight"></ColumnDefinition>
                    </Grid.ColumnDefinitions>
                    <Image Name="Grid_Images" AllowDrop="True" Width="Auto" Height="Auto" Tag="{Binding Id}" Source="{Binding Converter={StaticResource imageConverter}}" Grid.Row="1" Grid.Column="1"
                           DragEnter="Grid_Images_DragEnter" MouseLeftButtonDown="Grid_Images_MouseLeftButtonDown" MouseLeftButtonUp="Grid_Images_MouseLeftButtonUp"
                            MouseMove="Grid_Images_MouseMove" Drop="Grid_Images_Drop" KeyUp="Grid_Images_KeyUp"  />
                    <TextBlock  Name="Grid_Descrition" AllowDrop="True"  TextAlignment="Center" Text="{Binding Id}" Grid.Row="2" Grid.Column="1"/>
                </Grid>

            </DataTemplate>

        </ListView.ItemTemplate>
    </ListView>
3个回答

32

希望这将为其他人节省时间。我发现在ListView控件中完全删除ListViewItems之间的间距需要设置多个属性为0。除了Margin和Padding之外,我还必须将BorderThickness设置为0。

<ListView.ItemContainerStyle>
     <Style TargetType="ListViewItem">
          <Setter Property="BorderThickness" Value="0"/>
          <Setter Property="Margin" Value="0"/>
          <Setter Property="Padding" Value="0"/>
     </Style>
</ListView.ItemContainerStyle>

3

添加一个ListView.ItemContainerStyle并创建一个Setter,应用你喜欢的Margin大小。


3
您可以在网格中添加一些Margin。
 <Grid  Margin="5">
                <Grid.RowDefinitions>
                    <RowDefinition Height="5" ></RowDefinition>
                    <RowDefinition Height="150"></RowDefinition>
                    <RowDefinition Height="15" ></RowDefinition>
                    <RowDefinition Height="5" ></RowDefinition>
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="7" x:Name="columnLeft"></ColumnDefinition>
                    <ColumnDefinition Width="100" x:Name="columnImage"></ColumnDefinition>
                    <ColumnDefinition Width="7" x:Name="columnRight"></ColumnDefinition>
                </Grid.ColumnDefinitions>
                <Image Name="Grid_Images" AllowDrop="True" Width="Auto" Height="Auto" Tag="{Binding Id}" Source="{Binding Converter={StaticResource imageConverter}}" Grid.Row="1" Grid.Column="1"
                       DragEnter="Grid_Images_DragEnter" MouseLeftButtonDown="Grid_Images_MouseLeftButtonDown" MouseLeftButtonUp="Grid_Images_MouseLeftButtonUp"
                        MouseMove="Grid_Images_MouseMove" Drop="Grid_Images_Drop" KeyUp="Grid_Images_KeyUp"  />
                <TextBlock  Name="Grid_Descrition" AllowDrop="True"  TextAlignment="Center" Text="{Binding Id}" Grid.Row="2" Grid.Column="1"/>
            </Grid>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接