Partager via


Comment : faire défiler le contenu à l'aide de l'interface IScrollInfo

Cet exemple montre comment faire défiler le contenu à l'aide de l'interface IScrollInfo.

Exemple

L'exemple suivant illustre les fonctionnalités de l'interface IScrollInfo. L'exemple crée un élément StackPanel en Extensible Application Markup Language (XAML) qui est imbriqué dans un ScrollViewer parent. Les éléments enfants du StackPanel peuvent faire l'objet d'un défilement logique en utilisant les méthodes définies par l'interface IScrollInfo et être castés en instance de StackPanel (sp1) dans le code.

<Border BorderBrush="Black" Background="White" BorderThickness="2" Width="500" Height="500">
    <ScrollViewer Name="sv1" CanContentScroll="True" VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Visible">
        <StackPanel Name="sp1">
            <Button>Button 1</Button>
            <Button>Button 2</Button>
            <Button>Button 3</Button>
            <Button>Button 4</Button>
            <Button>Button 5</Button>
            <Rectangle Width="700" Height="500" Fill="Purple"/>
            <TextBlock>Rectangle 1</TextBlock>
            <Rectangle Width="700" Height="500" Fill="Red"/>
            <TextBlock>Rectangle 2</TextBlock>
            <Rectangle Width="700" Height="500" Fill="Green"/>
            <TextBlock>Rectangle 3</TextBlock>
        </StackPanel> 
    </ScrollViewer>
</Border>

Chaque Button du fichier XAML déclenche une méthode personnalisée associée qui contrôle le comportement de défilement dans StackPanel. L'exemple suivant montre comment utiliser les méthodes LineUp et LineDown ; il indique également de manière générique comment utiliser toutes les méthodes de positionnement que la classe IScrollInfo définit.

Private Sub spLineUp(ByVal sender As Object, ByVal args As RoutedEventArgs)

    CType(sp1, IScrollInfo).LineUp()
End Sub
Private Sub spLineDown(ByVal sender As Object, ByVal args As RoutedEventArgs)

    CType(sp1, IScrollInfo).LineDown()
End Sub
private void spLineUp(object sender, RoutedEventArgs e)
{
    ((IScrollInfo)sp1).LineUp();
}
private void spLineDown(object sender, RoutedEventArgs e)
{
    ((IScrollInfo)sp1).LineDown();
}

Voir aussi

Référence

ScrollViewer

IScrollInfo

StackPanel

Concepts

Vue d'ensemble de ScrollViewer

Vue d'ensemble de Panel

Autres ressources

Rubriques "Comment utiliser le ScrollViewer"