Centering selected item in a scroll viewer

后端 未结 2 668
感动是毒
感动是毒 2021-01-03 01:49

I am trying to center a selected item in a ListView inside a ScrollViewer and struggling to calculate the vertical offset that I should be setting the ScrollViewer relative

2条回答
  •  醉话见心
    2021-01-03 02:39

    Yup, this worked for me out of the box with ScrollIntoView

        private void CountKeyBoard_NavigationEvent(object sender, Controls.UserControls.NavigationEventArgs e)
        {
            if (lvInvDetails.SelectedItem != null && lvInvDetails.SelectedIndex != -1)
            {
                switch (e.Direction)
                {
                    case Controls.UserControls.NavigationEventArgs.DirectionEnum.NEXT:
                        if (lvInvDetails.SelectedIndex >= (lvInvDetails.Items.Count - 1))
                            lvInvDetails.SelectedIndex = 0;
                        else
                            lvInvDetails.SelectedIndex++;
                        break;
    
                    case Controls.UserControls.NavigationEventArgs.DirectionEnum.PREVIOUS:
                        if (lvInvDetails.SelectedIndex > 0)
                            lvInvDetails.SelectedIndex--;
                        else
                            lvInvDetails.SelectedIndex = lvInvDetails.Items.Count - 1;
                        break;
                }
                lvInvDetails.ScrollIntoView(lvInvDetails.SelectedItem);
            }
        }
    

提交回复
热议问题