Freigeben über


Gewusst wie: Durchführen eines Bildlaufs von Inhalten 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 zahlreiche Funktionen der IScrollInfo-Schnittstelle veranschaulicht. Im Beispiel wird ein StackPanel-Element in Extensible Application Markup Language (XAML) erstellt, das in einem übergeordneten ScrollViewergeschachtelt 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. Im folgenden Beispiel wird gezeigt, wie die LineUp- und LineDown- Methoden verwendet werden. Außerdem wird allgemein gezeigt, wie alle Positionierungsmethoden verwendet werden, die die IScrollInfo-Klasse definiert.

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

Weitere Informationen