2010-03-17 10 views
77

¿Cómo podría establecer el valor de la propiedad Height de un control WPF en el código C# en "Auto"?WPF Altura automática en el código

<Grid.RowDefinitions> 
    <RowDefinition /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition /> 
</Grid.RowDefinitions> 

Quiero reproducir este comportamiento en el código. ¿Algunas ideas?

Respuesta

119

Tal vez this link le ayudará.

A veces, es posible que desee establecer mediante programación la altura o anchura de un elemento de WPF en Auto en código. Para hacer esto, solo use el valor Double.NaN (Not a Number).

Por ejemplo, en C#:

this.txtName.Width = Double.NaN;

+1

no funcionan en mi caso. Pero estoy cambiando el ancho de altura a través de comportamientos (expresión blend 4.0 lib) – Franck

+0

El enlace no funciona –

+1

El enlace está muerto pero puede acceder a una versión archivada [aquí] (http://web.archive.org/web/20131203203321/http: //msmvps.com/blogs/kevinmcneish/archive/2010/03/03/wpf-setting-the-height-or-width-to-auto-in-code.aspx) – akjoshi

78

Puede utilizar

 
RowDefinition rd = new RowDefinition(); 
rd.Height = GridLength.Auto; 
ContentGrid.RowDefinitions.Add(rd); 
+7

¿Alguna diferencia entre esta respuesta y la aceptada? Porque si no, esta debería ser la mejor respuesta para no eludir el marco. – estebro

+1

Según el reflector, GridLength.Auto es new GridLength (1.0, GridUnitType.Auto); por lo tanto, no es exactamente equivalente a la respuesta aceptada, pero es mucho más legible. – helios456

Cuestiones relacionadas