Проблема в том, что в основе шаблона ListBox
лежит этот Xaml: -
<Border CornerRadius="2" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
<ScrollViewer x:Name="ScrollViewer" Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}" BorderBrush="Transparent" BorderThickness="0" TabNavigation="{TemplateBinding TabNavigation}">
<ItemsPresenter />
</ScrollViewer>
</Border>
ScrollViewer делает то, что вы хотите сделать, довольно сложно. Решение состоит в том, чтобы (при условии, что вам действительно нужен ListBox , в частности) повторно шаблонировать ListBox. Настройте вышеуказанную часть шаблона так: -
<Border CornerRadius="2" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}">
<ItemsPresenter />
</Border>
Возможно, вы также захотите использовать StackPanel
в качестве панели предметов.
Однако, если вам не нужны функции выбора ListBox, тогда простой ItemsControl сделает это.