2011-12-09 11 views
8

Chciałbym dodać odległość między jego elementami, aby móc na nim prowadzić moją operację wiązania.Jak dodać odstęp między listview.items?

<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> 

Odpowiedz

2

Można tylko dodać pewien margines do siatki

<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> 
1

Dodaj ListView.ItemContainerStyle i stworzyć Setter że stosuje Margin niezależnie od wielkości wolisz.

16

Mam nadzieję, że to uratuje kogoś innego. Zauważyłem, że istnieje wiele właściwości, które muszą być ustawione na 0, aby całkowicie usunąć odstępy między ListViewItems w kontrolce ListView. Oprócz marginesów i wypełnień musiałem ustawić grubość obramowania na 0.

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