2011-07-20 24 views
7

Estoy creando programáticamente un DataGrid y necesito que las alturas de fila sean variables para que las filas con varias líneas de texto tengan una gran altura para acomodar las líneas adicionales.WPF DataGrid con alturas de fila variables

Intenté configurar la propiedad RowHeight en el código, pero esto requiere un valor fijo. Si dejo RowHeight sin establecer, solo usa un valor arbitrario que no se expande si el texto no se ajusta.

También me gustaría tener mis contenidos de DataGrid para poder escalar, por lo que si se cambia el tamaño del DataGrid también se cambia el tamaño de la celda, incluida la fuente dentro de las celdas. Podría usar Viewbox para esto, pero he tenido problemas con Viewbox, ya que no crecerá para ajustarse al texto, esquiva/expande el texto para encajar en él.

Quizás tenga que recorrer todas las filas y columnas en un cambio de tamaño y configurar la propiedad de altura manualmente.

Respuesta

7

Prueba esto:

En el constructor de su ventana, hacer:

dataGrid.RowHeight = double.NaN; 
+0

¿Cómo hago esto en el código de atrás? No ve DataGridView. DataGrid myDataGrid = new DataGrid(); // Hacer cosas para personalizar myDataGrid parentGrid.Children.Add (myDataGrid); – WPFNewbie

+0

No tiene que hacerlo en el código de detrás. Cuando esté en modo de diseño, haga clic en su DataGridView, vaya a la ventana de propiedades, busque AutoSizeRowsMode y configúrelo allí. –

+0

Lo único que obtengo es AutoGenerateColumns, pero esto está en DataGrid. Me dice que DataGridView no es reconocido. – WPFNewbie

8

Gran respuesta a este problema de Tom - era muy útil en este momento. Si desea lograr esto puramente en XAML sin código detrás, se puede añadir la siguiente propiedad en su declaración DataGrid RowHeight="{x:Static sys:Double.NaN}"

Para obtener el espacio de nombres 'SYS' reconocido aquí, habría que añadir xmlns:sys="clr-namespace:System;assembly=mscorlib" a las declaraciones xmlns en el la parte superior de su archivo Xaml.

+0

Gracias por proporcionar la versión XAML, @pandrew. Funciona bastante bien – Alex