Zak
Zak

Reputation: 721

Windows Phone ListBox: how to scroll it?

I've got a ListBox (dynamically populated via code):

(i can't insert the code, bah)

I need, with a button, to move this listbox vertically. The listbox have a fixed height, and also the items.

Can someone help me?

Upvotes: 1

Views: 2836

Answers (2)

MattyMerrix
MattyMerrix

Reputation: 11193

This works. Set the ListBox to not scroll, then add a ScrollViewer around it. Now in your code behind you can set the ScrollViewer to whatever you want.

XAML:

<!--Disable the ListBox scroll and add a ScrollViewer so we have control over the scroll position.-->
    <ScrollViewer 
             Name="scrlvwrListBoxMessages"
             VerticalScrollBarVisibility="Auto" >
        <ListBox x:Name="lstbxMessages"
             ScrollViewer.VerticalScrollBarVisibility="Disabled" >
</ListBox>
</ScrollViewer>

Code:

    private void ScrollToBottom()
    {
        //Scroll to the bottom.
        Dispatcher.BeginInvoke(() =>
        {
            this.scrlvwrListBoxMessages.ScrollToVerticalOffset(double.MaxValue);
        });
    }

Upvotes: 0

art.vandelay.31415
art.vandelay.31415

Reputation: 426

Per MSDN, it looks like this is a viable answer for you?
ListBox.ScrollIntoView Method

Edit - Comment Summary of Answer: The question here was targetting scrolling itself, not to a particular object. As such, the necessary action was to attain a reference to the ListBox's ScrollViewer. From there, a call needed to be placed to the ScrollViewer's ScrollToVerticalOffset method. As the OP wanted to scroll down a certain amount from the original position, the ScrollViewer's VerticalOffset property was incorporated into the call.

Upvotes: 1

Related Questions