この質問で説明されているように、ScrollViewer 内のアプリでスナップ ポイントを有効にしました:バインド可能なコレクションで ScrollViewer HorizontalSnapPoints を有効にする
私が抱えている問題は、アプリをフル HD モニター (1920x1080) で試しており、各アイテムの幅が 1400 px であることです。アイテム #n-1 でスクロールをスナップするまでに、スナップしないため、最後のものまでスクロールできません...
私がしなければならなかったハックは、最後に透明な「偽の」アイテムを追加することでした。これにより、コレクションの最後のアイテムまでスクロールできます。
<Page.Resources>
<Style x:Key="ItemsControlStyle" TargetType="ItemsControl">
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<VirtualizingStackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ItemsControl">
<ScrollViewer Style="{StaticResource HorizontalScrollViewerStyle}" HorizontalSnapPointsType="Mandatory" HorizontalSnapPointsAlignment="Near">
<ItemsPresenter />
</ScrollViewer>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Page.Resources>
<ItemsControl Style="{StaticResource ItemsControlStyle}">
<Border Background="Red" Height="1000" Width="1400"/>
<Border Background="Blue" Height="1000" Width="1400"/>
<Border Background="Green" Height="1000" Width="1400"/>
<Border Background="Yellow" Height="1000" Width="1400"/>
<Border Background="Magenta" Height="1000" Width="1400"/>
<Border Background="Transparent" Height="1000" Width="1000" />
</ItemsControl>
このハックを使用しても発生する2番目の問題は、メトロアプリから画面サイズにアクセスできないため、画面に応じて幅が可変の最後のアイテムを追加してこれを修正することさえできなかったことです問題。助言がありますか?
ありがとう!