Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WPF - centering content in a scrollviewer?

I have a scrollviewer that contains a stackpanel of textblock items (actually, these are probably tabitems, I'm using a stackpanel inside a scrollviewer to override the default tabpanel in a tabcontrol template). What I'd like to be able to do is, when the selected tab is changed, move the newly selected tab to the center of the scrollviewer's visible area. Ideally this would work for all the tabs, even those on the far sides, but I would settle for being able to tell the scrollviewer to scroll such that a particular element is as close to centered as possible.

Are there any obvious ways to achieve this in WPF? All the solutions I can think of right now involve a lot of work on custom controls.

enter image description here

like image 610
Nick W. Avatar asked Apr 14 '11 23:04

Nick W.


1 Answers

You can easily set the content to the center using the following code;

scrollviewer.ScrollToVerticalOffset(scrollviewer.ScrollableHeight / 2);
scrollviewer.ScrollToHorizontalOffset(scrollviewer.ScrollableWidth / 2);
like image 53
Anand Shanbhag Avatar answered Oct 27 '22 21:10

Anand Shanbhag