Compartilhar via


Como rolar conteúdo usando a interface IScrollInfo

Este exemplo mostra como rolar o conteúdo usando a interface IScrollInfo.

Exemplo

O exemplo a seguir demonstra os recursos da interface IScrollInfo. O exemplo cria um elemento StackPanel na XAML (Extensible Application Markup Language) que está aninhado em um elemento pai ScrollViewer. Os elementos filho do StackPanel podem ser rolados logicamente usando os métodos definidos pela interface IScrollInfo e convertidos na instância de StackPanel (sp1) no código.

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

Cada Button no arquivo XAML dispara um método personalizado associado que controla o comportamento de rolagem em StackPanel. O exemplo a seguir mostra como usar os métodos LineUp e LineDown; também mostra genericamente como usar todos os métodos de posicionamento definidos pela classe IScrollInfo.

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

Consulte também