如何在wpf c中禁用数据网格内的滚动#
我已经完成了VerticalScrollBarVisibility=“Disabled”,因为我不希望看到datagrid中跨越指定高度的内容。在给出上述语句后,我无法看到滚动条。但我仍然可以向下滚动并查看行。有人能告诉我如何禁用所有滚动吗?如何在wpf c中禁用数据网格内的滚动#,wpf,datagrid,wpfdatagrid,Wpf,Datagrid,Wpfdatagrid,我已经完成了VerticalScrollBarVisibility=“Disabled”,因为我不希望看到datagrid中跨越指定高度的内容。在给出上述语句后,我无法看到滚动条。但我仍然可以向下滚动并查看行。有人能告诉我如何禁用所有滚动吗? 谢谢一旦您为DatGrid禁用了垂直滚动条可见性,您需要禁用ScrollViewer的滚动功能,如下所示: ScrollViewer.CanContentScroll=“False” 但是,在执行此操作时,请确保已经为整个DataGrid和DataGrid
谢谢一旦您为DatGrid禁用了
垂直滚动条可见性
,您需要禁用ScrollViewer的滚动功能,如下所示:
ScrollViewer.CanContentScroll=“False”
但是,在执行此操作时,请确保已经为整个DataGrid和DataGrid行定义了标准高度,以便用户可以看到您希望他们看到的所有行,否则将不会显示截断的行,并且用户无法向下滚动查看它们
希望这有帮助。允许DataGrid显示其所有内容(因此无需滚动条):
你可以把结果放在任何地方。它将把它的大小缩小到所有者的尺寸只是想添加一个适用于列的答案。有时,您可能会发现Datagrid将滚动到您希望保持不可见的额外列,特别是在高度被专门调整以使任何其他列不可见的情况下。我只是将一个已加载的处理程序附加到Datagrid,并将所有附加列的宽度设置为0并将其隐藏。正确的方法是禁用命中目标
DataGrid.IsHitTestVisible = false;
接受的解决方案不适用于我,因为我需要行选择。 我通过禁用datagrid平移(用于鼠标拖动)和处理按键按下事件(用于键盘)解决了所有问题。 在datagrid XAML中:
ScrollViewer.PanningMode="None"
以及:
在代码隐藏中:
private void OnDatagridPreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Right || e.Key == Key.Left)
e.Handled = true;
}
嗯
编辑:我的答案适用于列,但行的所有内容都类似。这可以工作,但无法解决问题,如果您希望能够在数据网格中实际单击(只是忽略其中的鼠标滚动),它还将禁用对行的单击
PreviewKeyDown="OnDatagridPreviewKeyDown"
private void OnDatagridPreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Right || e.Key == Key.Left)
e.Handled = true;
}