How to scroll WPF ScrollViewer's content to specific location How to scroll WPF ScrollViewer's content to specific location wpf wpf

How to scroll WPF ScrollViewer's content to specific location


// How to scroll the uiElement to the mouse position?uiElement.BringIntoView();

REF: https://msdn.microsoft.com/en-us/library/ms598110.aspx

UPDATE: (thanks to @jmbpiano) Note, it does not bring the control exactly to the current mouse cursor position. It just brings the control to a visible position, where the Operator will be able to click it with the mouse (which in 99% of cases is all someone who finds this question is likely to need).


Something like the following:

var sv = (ScrollViewer)Template.FindName("PART_MyScrollViewer", this); // If you do not already have a reference to it somewhere.var ip = (ItemsPresenter)sv.Content;var point = item.TranslatePoint(new Point() - (Vector)e.GetPosition(sv), ip);sv.ScrollToVerticalOffset(point.Y + (item.ActualHeight / 2));


Use UIElement.TranslatePoint() to calculate what position you want to scroll to

Use ScrollViewer.ScrollToVerticalOffset() to do the scrolling