2011-07-20 41 views
7

我以編程方式創建一個DataGrid,並且需要行高才能變化,以便具有多行文本的行具有很高的高度以容納額外的行。可變行高的WPF數據網格

我試着在代碼中設置RowHeight屬性,但是這需要一個固定的值。如果我將RowHeight取消設置,它只使用一個任意值,如果文本不適合,它將不會展開。

我還想讓我的DataGrid內容具有可伸縮性,因此如果調整了DataGrid的大小,實際的單元格也會調整大小,包括單元格內的字體。我可以爲此使用Viewbox,但是由於ViewBox不適合文本,因此Viewbox遇到了問題,它會推脫/展開文本以適應文本。

也許我需要遍歷調整大小的所有行和列,並手動設置height屬性。

回答

7

試試這個:

在窗口的構造函數,這樣做:

dataGrid.RowHeight = double.NaN; 
+0

如何在代碼後面執行此操作。它沒有看到DataGridView。 DataGrid myDataGrid = new DataGrid(); //做些東西來定製myDataGrid parentGrid.Children.Add(myDataGrid); – WPFNewbie

+0

您不必在後面的代碼中執行此操作。在設計模式下,單擊您的DataGridView,轉到屬性窗口,搜索AutoSizeRowsMo​​de,並將其設置在那裏。 –

+0

我唯一得到的是AutoGenerateColumns,但這是在DataGrid上。它告訴我DataGridView無法識別。 – WPFNewbie

8

大答案湯姆這個問題 - 進來的吧,現在。如果你想完全在XAML沒有後面的代碼達致這,你可以在你的DataGrid聲明中加入以下屬性RowHeight="{x:Static sys:Double.NaN}"

爲了得到「SYS」命名空間在這裏認識到,你就必須在添加xmlns:sys="clr-namespace:System;assembly=mscorlib"到xmlns聲明Xaml文件的頂部。

+0

感謝您提供XAML版本@pandrew。工作得很好。 – Alex