Как отключить прокрутку внутри сетки данных в wpf c # - PullRequest
10 голосов
/ 08 августа 2011

Я сделал VerticalScrollBarVisibility = "Disabled", потому что я не хочу, чтобы содержимое внутри сетки данных просматривалось, которое пересекает назначенную высоту. Я не могу видеть полосу прокрутки после того, как дал приведенное выше утверждение. Но я все еще могу прокрутить вниз и увидеть строки. Может кто-нибудь сказать мне, как я могу отключить прокрутку все вместе? Спасибо

Ответы [ 5 ]

8 голосов
/ 19 июня 2014

Правильный подход - отключить цель попадания

DataGrid.IsHitTestVisible = false;
5 голосов
/ 14 сентября 2011

После того, как вы отключили VerticalScrollBarVisibility для своей DatGrid, вам нужно отключить функцию прокрутки ScrollViewer, как это:

ScrollViewer.CanContentScroll="False"

Но когда вы сделаете это, убедитесь, что вы уже определили стандартную высоту для всей вашей DataGrid и ваших строк DataGrid таким образом, чтобы пользователь мог видеть все строки, которые вы хотите, чтобы они видели, иначе отрубленные строки не будут отображаться и пользователь не может прокрутить вниз, чтобы увидеть их.

Надеюсь, это поможет.

3 голосов
/ 22 июля 2013

Разрешить DataGrid показывать весь его контент (поэтому ему не нужна полоса прокрутки):

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

Вы можете поместить результат в любом месте. Это уменьшит его размер до размеров владельца

1 голос
/ 12 июня 2015

Принятое решение не сработало, так как мне нужно было выбрать строку.Я решил все свои проблемы, отключив панорамирование сетки данных (для перетаскивания мышью) и обработав события нажатия клавиш (для клавиатуры).В сетке данных XAML:

ScrollViewer.PanningMode="None"

И:

PreviewKeyDown="OnDatagridPreviewKeyDown"

В коде:

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

HTH.

Редактировать: Мой ответ применяетсяв столбцы, но для строк все аналогично.

0 голосов
/ 16 сентября 2013

Просто хотел добавить ответ, который применяется к столбцам. Иногда вы можете обнаружить, что Datagrid будет прокручивать дополнительные столбцы, которые вы предпочитаете, оставаться невидимыми, особенно если высота специально настроена так, что любые дополнительные столбцы невидимы. Я просто прикрепил обработчик Loaded к Datagrid, установил ширину всех дополнительных столбцов и скрыл их.

...