У меня есть ListView, который проходит примерно так:
<ListView
x:Name="SeriesListView"
SnapsToDevicePixels="True"
ItemsSource="{Binding Items}"
BorderBrush="Transparent" BorderThickness="0"
Padding="0" Margin="0"
VerticalContentAlignment="Top"
Background="Purple"
LostFocus="ListView_LostFocus"
>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<local:LDSeriesPanel
SnapsToDevicePixels="True"
MaxWidth="{Binding ElementName=itControl,Path=ActualWidth}"
VerticalAlignment="Stretch" HorizontalAlignment="Stretch"
MinHeight="{x:Static local:LDSeriesPanel.MIN_HEIGHT}"
MinWidth="{x:Static local:LDSeriesPanel.MIN_WIDTH}"
Margin="0"
Background="Aquamarine"/>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
Когда это пусто, Ширина и Высота пользовательской панели, которую я определил, составляют 15 x 15. Я могу подтвердить, что это фактические размеры во времени выполнения. Однако сам ListView имеет размеры 17 x 17 (то есть, граница на один пиксель между панелью и ListView).
Начиная с пользовательской панели и хождения по дереву, я получаю следующих предков:
Если я изменяю Дополнение на ListView к-1, это удаляет границу, но вызывает несколько других проблем.
Я надеюсь постараться не повторно обрабатывать весь ListView по шаблону. Все остальное хорошо работает. Есть ли некоторый способ, которым я могу Удалить эту пиксельную границу, возможно, через стиль?
Я только что взглянул на шаблон по умолчанию для ListView
, действительно, Border
имеет явное заполнение 1 ... так что я не Не думаю, что вы можете сделать это без переопределения шаблона. В любом случае, это не очень сложно: просто скопируйте шаблон по умолчанию с помощью таких инструментов, как StyleSnooper или ShowMeTheTemplate (я думаю, что Blend тоже может это сделать) и измените то, что вам нужно ...