2011-07-20 39 views
7

Tôi đang tạo lập trình DataGrid và cần chiều cao hàng để biến để các hàng có nhiều dòng văn bản có chiều cao lớn để chứa các dòng bổ sung.WPF DataGrid với chiều cao hàng biến

Tôi đã thử đặt thuộc tính RowHeight trong mã, nhưng điều này đòi hỏi một giá trị cố định. Nếu tôi để RowHeight bỏ đặt nó chỉ sử dụng một giá trị tùy ý không mở rộng nếu văn bản không vừa.

Tôi cũng muốn có các nội dung DataGrid của mình có khả năng mở rộng, vì vậy nếu DataGrid được định lại kích thước, thì kích cỡ ô thực tế cũng như phông chữ bên trong ô. Tôi có thể sử dụng một Viewbox cho điều này, nhưng tôi đã có vấn đề với Viewbox vì nó sẽ không phát triển để phù hợp với văn bản, nó shirks/mở rộng văn bản để phù hợp với nó.

Có lẽ tôi cần phải đi qua tất cả các hàng và cột trên một thay đổi kích thước và thiết lập các tài sản chiều cao bằng tay.

Trả lời

7

Hãy thử điều này:

Trong constructor của Window của bạn, làm:

dataGrid.RowHeight = double.NaN; 
+0

Làm cách nào để thực hiện điều này ở mã phía sau. Nó không nhìn thấy DataGridView. DataGrid myDataGrid = new DataGrid(); // Làm các công cụ để tùy chỉnh myDataGrid parentGrid.Children.Add (myDataGrid); – WPFNewbie

+0

Bạn không phải làm điều đó trong mã phía sau. Khi ở chế độ thiết kế, bấm vào DataGridView của bạn, đi đến cửa sổ thuộc tính, tìm kiếm AutoSizeRowsMode, và đặt nó ở đó. –

+0

Điều duy nhất tôi nhận được là AutoGenerateColumns, nhưng đây là trên DataGrid. Nó nói với tôi DataGridView không được công nhận. – WPFNewbie

8

Great câu trả lời cho vấn đề này từ Tom - đến trong rất hữu ích ngay bây giờ. Nếu bạn muốn đạt được điều này hoàn toàn trong Xaml không có mã phía sau, bạn có thể thêm thuộc tính sau vào khai báo DataGrid của mình RowHeight="{x:Static sys:Double.NaN}"

Để nhận được không gian tên 'sys' được công nhận ở đây, bạn sẽ phải thêm xmlns:sys="clr-namespace:System;assembly=mscorlib" vào các khai báo xmlns tại đầu tệp Xaml của bạn.

+0

Cảm ơn bạn đã cung cấp phiên bản XAML, @pandrew. Hoạt động khá tốt. – Alex

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