C# Wpf datagrid pagedown,滚动设置为像素,单元格的制表位设置为false
我有一个WPF数据网格,我在单元格上禁用了制表符,虚拟化面板滚动单元设置为像素。当我按下PgDn时,所选项目不会更改,因此向下滚动页面不会作为标准工作 将虚拟化面板滚动单元的cell tab stop(单元选项卡停止)更改为true(为item)会使页面向下滚动恢复正常 为什么会这样?在修复页面向下滚动时,是否可以同时保持这两种设置C# Wpf datagrid pagedown,滚动设置为像素,单元格的制表位设置为false,c#,wpf,datagrid,C#,Wpf,Datagrid,我有一个WPF数据网格,我在单元格上禁用了制表符,虚拟化面板滚动单元设置为像素。当我按下PgDn时,所选项目不会更改,因此向下滚动页面不会作为标准工作 将虚拟化面板滚动单元的cell tab stop(单元选项卡停止)更改为true(为item)会使页面向下滚动恢复正常 为什么会这样?在修复页面向下滚动时,是否可以同时保持这两种设置 <Window.Resources> <Style TargetType="DataGridCell"> <S
<Window.Resources>
<Style TargetType="DataGridCell">
<Setter Property="IsTabStop" Value="False" />
</Style>
</Window.Resources>
<Grid>
<DataGrid ItemsSource="{Binding Items}"
VirtualizingPanel.ScrollUnit="Pixel">
</DataGrid>
</Grid>
如果您查看
DataGrid
的源代码,您会发现只有当ScrollUnit
设置为项时,它才会以某种方式处理PageDown
键的KeyDown
事件:
因此,如果您想让它工作,您必须对DataGrid
类进行子类化,并覆盖OnKeyDown
方法,以提供您自己的自定义PageDown
功能。您可以根据自己的要求“窃取”和修改privateOnPageUpOrDownKeyDown
方法