2012-03-25 9 views
6

Sto stilando un listBox. sto provando a cancellare i margini, quindi ho capito di cosa si tratta, ho impostato il padding dello stile su 0 (padding sinistro).Come rimuovere il piccolo di padding attorno al ListBoxItem?

Ma posso ancora vedere un margine in esso, e ho bisogno di non avere margini in esso? Sai quale sarebbe il problema?

enter image description here

  <ListBox ItemsSource="{Binding Partitions}"> 
       <ListBox.ItemsPanel> 
        <ItemsPanelTemplate> 
         <Canvas /> 
        </ItemsPanelTemplate> 
       </ListBox.ItemsPanel> 

       <ListBox.ItemContainerStyle> 
        <Style TargetType="ListBoxItem"> 
         <Setter Property="Padding" Value="0"/> 
         <Setter Property="Canvas.Top"> 
          ... 
         </Setter> 
       </Style> 
       </ListBox.ItemContainerStyle> 

Voglio dire, riesco a vedere uno spazio aggiuntivo attorno al punto e non riesco a gestire la cosa di modificare a 0.

+1

Qual è il tuo codice completo? Ho inserito questo in una griglia di base e non ho riscontrato il problema –

+1

Possibile [duplicato] (http://stackoverflow.com/questions/1351605/where-are-the-margins-padding-set-on-a-wpf-listview -vista a griglia). Vedi la seconda risposta nella domanda. – NVM

risposta

3

Questo imbottitura è hard-coded nel default template di il ListBox, è necessario o sovrascriverlo o modificarlo in fase di runtime (che vorrei non raccomandare).

<ControlTemplate TargetType="{x:Type ListBox}"> 
    <Border Name="Bd" 
      Background="{TemplateBinding Background}" 
      BorderBrush="{TemplateBinding BorderBrush}" 
      BorderThickness="{TemplateBinding BorderThickness}" 
      SnapsToDevicePixels="true" 
      Padding="1"> <!-- Here --> 
Problemi correlati