Маркер ListBox не совпадает с областью Windows 7 и Windows 8
Я создал WPF ListBox. Я разрабатываю под Windows 8. После того, как вы настроите стиль следующим образом (см. Изображение), при тестировании приложения в Windows 7 разница не будет одинаковой. Как вы можете видеть в воображении, разделение между узлами - 1px в Windows 8, но 0 пикселей в Windows 7.
![enter image description here]()
Вы знаете, почему это и как его решить?
Спасибо заранее.
Ответы
Ответ 1
Мне на самом деле удалось избавиться от него сам, похоже, что стиль ListViewItem изменен Windows8, добавив стиль для локальных ресурсов ListView, сработал у меня.
<ListView.Resources>
<Style TargetType="ListViewItem">
<Setter Property="Margin" Value="0"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="BorderThickness" Value="0"/>
</Style>
</ListView.Resources>
Ответ 2
Вы можете попробовать установить поле ListBoxItem явно в DataContext.
Например:
<ListBox>
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" Margin="0,0,0,1" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Может быть, из-за того, что для окон для Windows 7 и Windows 8 существуют разные стили.
Ответ 3
Элемент ListBoxItem по умолчанию содержит границу. ListBoxItem также указывает дополнение, которое наследуется этой границей. Его Padding DP, который должен быть установлен так, как упомянул Энди.