2011-08-08 37 views
9

Tôi đã thực hiện VerticalScrollBarVisibility = "Disabled" vì tôi không muốn nội dung bên trong datagrid được xem vượt qua chiều cao được gán. Tôi không thể nhìn thấy thanh cuộn sau khi đưa ra tuyên bố trên. Nhưng tôi vẫn có thể cuộn xuống và xem hàng.Có người nào đó cho tôi biết làm cách nào để vô hiệu hóa việc cuộn tất cả lại với nhau? Cảm ơnLàm thế nào để vô hiệu hóa cuộn bên trong datagrid trong wpf C#

Trả lời

3

Khi bạn đã vô hiệu hóa VerticalScrollBarVisibility cho DatGrid của bạn, bạn cần phải vô hiệu hóa chức năng cuộn của ScrollViewer như thế này:

ScrollViewer.CanContentScroll="False"

Nhưng khi bạn làm điều mình chắc chắn rằng bạn đã xác định một chiều cao tiêu chuẩn cho toàn bộ DataGrid và các hàng DataGrid của bạn sao cho người dùng có thể thấy tất cả các hàng bạn muốn họ xem, nếu không các hàng bị cắt nhỏ sẽ không được hiển thị và người dùng không thể cuộn xuống để xem chúng.

Hy vọng điều này sẽ hữu ích.

3

phép DataGrid để hiển thị tất cả nội dung của nó (vì vậy nó không cần phải di chuyển thanh):

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

Bạn hơn có thể đặt kết quả trong mọi nơi. Nó sẽ cắt kích thước của nó xuống kích thước của chủ sở hữu

0

Chỉ muốn thêm câu trả lời được áp dụng cho các cột. Thỉnh thoảng, bạn có thể thấy rằng Datagrid sẽ di chuyển đến các cột bổ sung mà bạn muốn vẫn ẩn, đặc biệt nếu chiều cao được điều chỉnh cụ thể sao cho bất kỳ cột bổ sung nào là vô hình. Tôi chỉ đơn giản là gắn một xử lý nạp vào Datagrid và thiết lập tất cả các cột bổ sung với chiều rộng là 0 và làm cho chúng ẩn đi.

7

Cách tiếp cận đúng sẽ là để vô hiệu hóa các mục tiêu Hit

DataGrid.IsHitTestVisible = false; 
+0

Chỉ có giải pháp thực sự hoạt động ở đây. –

+0

Bạn là một người tiết kiệm cuộc sống – user3091574

+0

Tác phẩm này, nhưng không giải quyết được vấn đề nếu bạn hy vọng thực sự có thể nhấp vào bên trong lưới dữ liệu (chỉ để bỏ qua cuộn chuột bên trong nó) – CJBrew

1

Các giải pháp chấp nhận không làm việc cho tôi kể từ khi tôi cần lựa chọn hàng. Tôi đã giải quyết tất cả các vấn đề của mình bằng cách vô hiệu hóa panagag dữ liệu (để kéo chuột) và xử lý các sự kiện từ khóa (dành cho bàn phím). Trong DataGrid XAML:

ScrollViewer.PanningMode="None" 

Và:

PreviewKeyDown="OnDatagridPreviewKeyDown" 

Trong mã sau:

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

HTH.

Chỉnh sửa: Câu trả lời của tôi áp dụng cho các cột nhưng mọi thứ đều tương tự nhau cho các hàng.

Các vấn đề liên quan