2012-03-25 26 views
6

Tôi đang tạo kiểu cho một ListBox. Tôi đang cố gắng để xóa các lề, vì vậy tôi nhận ra nó, tôi đặt padding của phong cách để 0 (padding trái).Làm thế nào để loại bỏ các padding nhỏ xung quanh ListBoxItem?

Nhưng tôi vẫn có thể thấy một số lợi nhuận trong đó, và tôi không cần phải có lợi nhuận trong đó? Bạn có biết đó là vấn đề gì không?

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> 

Ý tôi là, tôi có thể thấy một không gian thêm xung quanh mục và tôi không thể xử lý nó để sửa đổi để 0.

+1

Mã đầy đủ của bạn là gì? Tôi đã cắm điều này vào Lưới cơ bản và không gặp phải vấn đề đó –

+1

Có thể [trùng lặp] (http://stackoverflow.com/questions/1351605/where-are-the-margins-padding-set-on-a-wpf-listview -chế độ hiển thị theo ô). Xem câu trả lời thứ hai trong câu hỏi. – NVM

Trả lời

3

Đó đệm được mã hóa cứng trong default template của ListBox, bạn cần phải ghi đè hoặc sửa đổi nó khi chạy (mà tôi sẽ không phải là đề xuất).

<ControlTemplate TargetType="{x:Type ListBox}"> 
    <Border Name="Bd" 
      Background="{TemplateBinding Background}" 
      BorderBrush="{TemplateBinding BorderBrush}" 
      BorderThickness="{TemplateBinding BorderThickness}" 
      SnapsToDevicePixels="true" 
      Padding="1"> <!-- Here --> 
Các vấn đề liên quan