Freigeben über


Scrollen durch Inhalte mithilfe der IScrollInfo-Schnittstelle

Dieses Beispiel zeigt, wie Sie den Inhalt mit Hilfe der IScrollInfo Benutzeroberfläche scrollen können.

Beispiel

Im folgenden Beispiel werden die Features der IScrollInfo Schnittstelle veranschaulicht. Im Beispiel wird ein StackPanel-Element in Extensible Application Markup Language (XAML) erstellt, das in einem übergeordneten ScrollViewer geschachtelt ist. Die untergeordneten Elemente von StackPanel können logisch gescrollt werden, indem Sie die von der IScrollInfo-Schnittstelle definierten Methoden verwenden und im Code auf die Instanz von StackPanel (sp1) umwandeln.

<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>

Jede Button in der XAML-Datei löst eine zugeordnete benutzerdefinierte Methode aus, die das Scrollverhalten in StackPanel steuert. Das folgende Beispiel zeigt, wie Sie die Methoden LineUp und LineDown verwenden, und es zeigt allgemein, wie alle Positionierungsmethoden verwendet werden, die von der Klasse IScrollInfo definiert werden.

private void spLineUp(object sender, RoutedEventArgs e)
{
    ((IScrollInfo)sp1).LineUp();
}
private void spLineDown(object sender, RoutedEventArgs e)
{
    ((IScrollInfo)sp1).LineDown();
}
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

Siehe auch