2011-07-20 14 views
7

Programowo generuję DataGrid i potrzebuję zmiennych wysokości wierszy, aby wiersze z wieloma wierszami tekstu miały dużą wysokość, aby pomieścić dodatkowe linie.WPG DataGrid o zmiennych wysokościach wierszy

Próbowałem ustawić właściwość RowHeight w kodzie, ale wymaga to stałej wartości. Jeśli pozostawię RowHeight unset, po prostu użyje arbitralnej wartości, która nie zostanie rozwinięta, jeśli tekst nie pasuje.

Chciałbym również, aby moja zawartość DataGrid była skalowalna, więc jeśli rozmiar DataGrid zostanie zmieniony, rzeczywiste rozmiary komórki również się zmienią, w tym czcionka wewnątrz komórek. Mógłbym użyć do tego celu Viewboxa, ale miałem problemy z Viewboxem, ponieważ nie będzie on się powiększał, aby pasował do tekstu, odrzuca/rozwija tekst, aby się w nim zmieścił.

Być może muszę przejść przez wszystkie wiersze i kolumny przy zmianie rozmiaru i ręcznie ustawić wartość wysokości.

Odpowiedz

7

Spróbuj tego:

W konstruktorze okna, wykonaj:

dataGrid.RowHeight = double.NaN; 
+0

Jak to zrobić w kodzie za. Nie widać DataGridView. DataGrid myDataGrid = new DataGrid(); // Wykonuj czynności w celu dostosowania myDataGrid parentGrid.Children.Add (myDataGrid); – WPFNewbie

+0

Nie musisz tego robić w kodzie. W trybie projektowania kliknij swój DataGridView, przejdź do okna właściwości, wyszukaj AutoSizeRowsMode i ustaw go tam. –

+0

Jedyne, co otrzymam, to AutoGenerateColumns, ale jest to w DataGrid. Mówi mi, że DataGridView nie jest rozpoznawany. – WPFNewbie

8

Świetna odpowiedź na ten problem z Tomem - przyszedł w bardzo przydatne właśnie teraz. Jeśli chcesz acheive to wyłącznie w XAML bez kodu tyłu, można dodać następującą właściwość w DataGrid deklaracji RowHeight="{x:Static sys:Double.NaN}"

Aby uzyskać nazw „SYS” uznana tutaj, trzeba by dodać xmlns:sys="clr-namespace:System;assembly=mscorlib" deklaracje xmlns u do góry twojego pliku Xaml.

+0

Dziękujemy za udostępnienie wersji XAML @pandrew. Działa całkiem dobrze. – Alex

Powiązane problemy