We had a good thread today at the office about the content scrolling in WPF applications (controls, DataGrid, etc.), and one of our devs, Ben Carter, had a response that I thought is golden and would like to share with you:
Here are a variety of ways to scroll, perhaps one of these would fit the scenario you’re thinking of:
· The default – provide a ScrollViewer and let the end-user do the work.
· BringIntoView – Find a reference to an element and call BringIntoView() on it.
· ScrollIntoView – Some ItemsControls provide a way to specify the data item to bring into view since the element that corresponds to the data item might be virtualized, making BringIntoView not an option.
· ScrollViewer.LineUp, etc. – Find a reference to a ScrollViewer and call the desired scrolling method.
· Commands – Raise one of the ScrollBar routed commands (ScrollBar.LineUpCommand) on an element that is a child of the ScrollViewer. (should result in essentially the same as calling the method on ScrollViewer)
· ScrollBar.Value – Find a reference to a ScrollBar within a ScrollViewer and set the value property directly. (generally not recommended)
He summarized them really well, IMHO.