Как прокручивать содержимое WPF ScrollViewer в определенное место

Я пишу свой собственный WPF ItemsControl для отображения списка элементов. Элементы отображаются встроенными в ScrollViewer :

<Style TargetType="MyCustomItemsControl">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="MyCustomItemsControl">
                    <ScrollViewer x:Name="PART_MyScrollViewer" >
                           <ItemsPresenter/>
                    </ScrollViewer>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
</Style>

Я хочу быть уверенным, что когда я наведу указатель мыши на элемент управления, определенный элемент (помеченный как выбранный) будет прокручиваться в позицию мыши. В моем методе OnMouseEnter я могу найти элемент, но не Не знаю, что делать дальше. У кого-нибудь есть идеи?

protected override void OnMouseEnter(MouseEventArgs e)
{
    for (int i = 0; i < 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;
        }
    }
}
18
задан H.B. 6 March 2014 в 07:11
поделиться