У меня была почти такая же проблема, см. мой вопрос , и я так и не нашел реального ответа.Что я делаю в настоящее время, так это убираю средство просмотра прокрутки из шаблона списка и встраиваем весь список непосредственно в новое средство просмотра прокрутки.Работает не на все случаи жизни, но, тем не менее, это хитрый трюк.
xaml выглядит так:
<ScrollViewer>
<ListBox>
<!--strip default presenter-->
<ItemsControl.Template>
<ControlTemplate>
<ItemsPresenter />
</ControlTemplate>
</ItemsControl.Template>
<ListBox.ItemTemplate>
<DataTemplate>
<!--data template goes here-->
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</ScrollViewer>
Я не большой волшебник xaml, так что если кто-то может перевести этов кусок кода, который можно использовать повторно, во что бы то ни стало.