J'ai un ItemControl sur un ScrollViewer. Je veux faire défiler élément par élément, défile maintenant pixel par pixel.ScrollViewer.CanContentScroll ne défile pas ItemsControl article par article
<ScrollViewer Height="299" Margin="10,10,0,0"
HorizontalScrollBarVisibility="Visible" x:Name="Scroll"
VerticalAlignment="Top"
Grid.Column="0" Grid.Row="1"
PanningMode="HorizontalOnly"
CanContentScroll="True">
<ItemsControl ItemsSource="{Binding RelativeSource={RelativeSource AncestorType=Window}, Path=Items, Mode=OneWay}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border Width="175" Height="64" Margin="0,0,16,16" HorizontalAlignment="Center" Focusable="False">
<TextBlock Text="{Binding}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
Merci @ Jarosław Rejterada, mais je dois attraper les événements de défilement du spectateur de défilement et changer ScrollingOffset de code. Aussi, je veux utiliser l'événement pour commander à partir de la lumière mvvm. –
C'est encore possible, vous pouvez modifier le modèle pour la vue liste et là vous avez un accès complet à scrollviewer. (pour générer un modèle de base Cliquez avec le bouton droit de la souris sur le concepteur -> EditTemplate -> Modifier la copie). Ou voir http://stackoverflow.com/questions/1585462/bubbling-scroll-events-from-a-listview-to-its-parent –