WPF ListView имеет границу на один пиксель вокруг внутренней панели расположения. Как я избавляюсь от него?

У меня есть 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).

Начиная с пользовательской панели и хождения по дереву, я получаю следующих предков:

  • ItemsPresenter: 15x15
  • ScrollViewer: 15x15
  • Сетка: 15x15
  • ScrollViewer: 15x15
  • Граница: 17x17
  • ListView: 17x17

Если я изменяю Дополнение на ListView к-1, это удаляет границу, но вызывает несколько других проблем.

Я надеюсь постараться не повторно обрабатывать весь ListView по шаблону. Все остальное хорошо работает. Есть ли некоторый способ, которым я могу Удалить эту пиксельную границу, возможно, через стиль?

7
задан Scott Whitlock 20 June 2010 в 17:44
поделиться

1 ответ

Я только что взглянул на шаблон по умолчанию для ListView , действительно, Border имеет явное заполнение 1 ... так что я не Не думаю, что вы можете сделать это без переопределения шаблона. В любом случае, это не очень сложно: просто скопируйте шаблон по умолчанию с помощью таких инструментов, как StyleSnooper или ShowMeTheTemplate (я думаю, что Blend тоже может это сделать) и измените то, что вам нужно ...

2
ответ дан 6 December 2019 в 08:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: