次のXAMLスニペットがあります。
<ItemsControl ItemsSource="..." ItemTemplate="..." VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Standard" ScrollViewer.CanContentScroll="True">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel Orientation="Vertical" utils:VirtualizingStackPanelAttachedProperties.IsPixelBasedScrollingEnabled="True"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.Template>
<ControlTemplate>
<Border BorderThickness="..." Padding="..." BorderBrush="..." Background="..." SnapsToDevicePixels="True">
<ScrollViewer Padding="..." Focusable="False">
<ItemsPresenter SnapsToDevicePixels="{TemplateBinding UIElement.SnapsToDevicePixels}" />
</ScrollViewer>
</Border>
</ControlTemplate>
</ItemsControl.Template>
</ItemsControl>
ご覧のとおり、ScrollViewer.CanContentScroll = "True"とutils:VirtualizingStackPanelAttachedProperties.IsPixelBasedScrollingEnabled = "True"(ここで提案されているように、IsPixelBased内部プロパティをtrueに設定する添付プロパティです)があります。
これは、スクロールがきめ細かいピクセルベースのWindowsXPで期待どおりに機能します。
ただし、これは、スクロールがまだアイテムベースであるWindows 7では期待どおりに機能しません。これは、上記の添付プロパティをTrueに設定していない場合のWindowsXPと同じです。
Windows 7でピクセルベースのスクロールを機能させる唯一の方法は、CanContentScrollをFalseに設定することでしたが、これは仮想化をオフにします。
なぜこれが起こるのか考えていますか?どういうわけか、Windows XPでは、仮想化が有効になっているにもかかわらず、仮想化が実際に機能していないというのは事実ですか?