ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
Datagrid或者listview 中想要把相应的项 滚动到当前可见的位置, 必须满足2个条件: 1) 必须去掉虚拟化    VirtualizingStackPanel.IsVirtualizing="False" 2) 调用ScrollToView     //Bring current selected item to view           if(null!=grdStudyList.SelectedItem&& 0 !=grdStudyList.Columns.Count)            {               //first focus the grid               grdStudyList.Focus();               //then create a new cell info, with the item we wish to edit and the column number of the cell we want in edit mode               DataGridCellInfocellInfo=newDataGridCellInfo(grdStudyList.SelectedItem,grdStudyList.Columns[0]);               //set the cell to be the active one               grdStudyList.CurrentCell=cellInfo;               //scroll the item into view               grdStudyList.ScrollIntoView(grdStudyList.SelectedItem);                }          3)如果不去掉虚拟化, VirtualizingStackPanel.IsVirtualizing ="True" 则, 调用如下语句:  privatevoidScrollItemInSelector(Selectordtg,objectneedScrollItem)        {           //Bring current selected item to view           if(null==dtg&&null!=needScrollItem)            {               //first focus the grid               dtg.Focus();               dtg.SelectedItem=needScrollItem;               dtg.Items.MoveCurrentTo(needScrollItem);               ScrollViewerscv=FindVisualChild<ScrollViewer>(dtg);               if(null!=scv                    && (dtg.Items.CurrentPosition<scv.VerticalOffset-scv.ViewportHeight||dtg.Items.CurrentPosition>scv.VerticalOffset+scv.ViewportHeight)                    )                {                   scv.ScrollToVerticalOffset(dtg.Items.CurrentPosition);                }            }        }