wpf datagrid wpfdatagrid

Cómo deshabilitar el desplazamiento dentro de la cuadrícula de datos en wpf c#



datagrid wpfdatagrid (5)

He hecho VerticalScrollBarVisibility = "Disabled" porque no quiero que se vea el contenido dentro de la cuadrícula de datos que cruza la altura asignada. No puedo ver la barra de desplazamiento después de dar la declaración anterior. Pero aún puedo desplazarme hacia abajo y ver las filas. ¿Puede alguien decirme cómo desactivo el desplazamiento en conjunto? Gracias


Una vez que haya deshabilitado VerticalScrollBarVisibility para su DatGrid, necesita deshabilitar la funcionalidad de desplazamiento del ScrollViewer como esta:

ScrollViewer.CanContentScroll="False"

Pero cuando lo hagas, asegúrate de que ya has definido una altura estándar para toda tu DataGrid y tus filas de DataGrid para que el usuario pueda ver todas las filas que quieres que vean; de lo contrario, las filas cortadas no se mostrarán y el usuario no puede desplazarse hacia abajo para verlos.

Espero que esto ayude.


Permita que DataGrid muestre todo su contenido (para que no necesite barra de desplazamiento):

<Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <DataGrid x:Name="DataGrid" /> </Grid>

Puedes poner el resultado en cualquier lugar. Reducirá su tamaño a las dimensiones del propietario


Solo quería agregar una respuesta que se aplica a las columnas. En ocasiones, puede encontrar que la cuadrícula de datos se desplazará a columnas adicionales que preferiría que permanezcan invisibles, especialmente si la altura se ajusta específicamente para que las columnas adicionales sean invisibles. Simplemente adjunté un controlador cargado a la cuadrícula de datos y configuré todas las columnas adicionales con un ancho de 0 y las oculté.


El enfoque correcto sería desactivar el objetivo Hit

DataGrid.IsHitTestVisible = false;


La solución aceptada no me funcionaba porque necesitaba la selección de filas. Resolví todos mis problemas al deshabilitar la panoramización de la cuadrícula de datos (para arrastrar el mouse) y manejar eventos de tecla abajo (para el teclado). En la cuadrícula de datos XAML:

ScrollViewer.PanningMode="None"

Y:

PreviewKeyDown="OnDatagridPreviewKeyDown"

En código detrás:

private void OnDatagridPreviewKeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Right || e.Key == Key.Left) e.Handled = true; }

HTH.

Editar: Mi respuesta se aplica a las columnas, pero todo es similar para las filas.