title: How to scroll WPF ScrollViewer's content to specific location
body: <p>I am writing my custom WPF ItemsControl to display a list of item. The items are shown embedded inside a ScrollViewer:</p>
  
  <pre class="lang-xml prettyprint-override"><code>&lt;Style TargetType="MyCustomItemsControl"&gt;
          &lt;Setter Property="Template"&gt;
              &lt;Setter.Value&gt;
                  &lt;ControlTemplate TargetType="MyCustomItemsControl"&gt;
                      &lt;ScrollViewer x:Name="PART_MyScrollViewer" &gt;
                             &lt;ItemsPresenter/&gt;
                      &lt;/ScrollViewer&gt;
                  &lt;/ControlTemplate&gt;
              &lt;/Setter.Value&gt;
          &lt;/Setter&gt;
  &lt;/Style&gt;
  </code></pre>
  
  <p>I want to make sure that when I move the mouse into the control, a particular item (marked as selected) will be scrolled into the mouse position. In my OnMouseEnter method I am able to find the item but I don't know what to do next. Does anyone have any idea?</p>
  
  <pre><code>protected override void OnMouseEnter(MouseEventArgs e)
  {
      for (int i = 0; i &lt; Items.Count; i++)
      {
          ContentPresenter uiElement = (ContentPresenter)ItemContainerGenerator.ContainerFromIndex(i);
          var item = uiElement.Content as MyCustomObject;
          if (item.IsSelected)
          {
              // How to scroll the uiElement to the mouse position?
              break;
          }
      }
  }
  </code></pre>