¿Por qué la mezcla agrega [d: LayoutOverrides = "Altura"] y debería importarme?


Muy a menudo cuando vuelvo a Visual Studio desde Expression Blend 3, veo que Blend ha agregado una propiedad "d:LayoutOverrides" a mi XAML. Crecer con ASP.NET diseñadores, naturalmente desconfío de todo lo que no escribiría yo mismo, así que elimínelos tan pronto como los vea.

Sé que las propiedades "d:" son solo para diseñadores y no afectan el tiempo de ejecución, pero puede alguien ofrecer alguna idea de lo que hace esta propiedad y por qué Blend sería tan insistente que las tenga en todo mi ¿marcado?

<Border d:LayoutOverrides="Height" />
Author: Brad Tutterow, 2009-09-11

2 answers

Eso es solo para que Blend sepa cómo mostrar su XAML en modo de diseño. Específicamente, si tienes un diseño fluido que se estira para llenar su contenedor, no hay una manera clara de que Blend sepa cuán alto debe ser tu diseño; LayoutOverrides lo define.

Esas entradas de configuración de LayoutOverride se agregan cuando usted (u otra persona que ejecuta Blend) cambia manualmente el tamaño de los elementos en la superficie de diseño. Si los ves en todo tu código (como en una frontera elemento):

  1. Por lo general, puede eliminarlos sin ningún efecto notorio
  2. Puede ver cómo está utilizando Blend-específicamente, debe dimensionar el cotainer padre a un buen tamaño (UserControl / LayoutRoot), luego establecer los tamaños secundarios basados en el diseño fluido - por ejemplo, relleno y margen o * tamaños

Tenga en cuenta que los atributos ignorables de Blend se eliminan en tiempo de compilación y no afectan el rendimiento de su aplicación. Así que si bien es posible que desee eliminarlos a mejore la legibilidad del código, no afectan la forma en que se ejecuta su aplicación.

 31
Author: Jon Galloway,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-11 16:46:55

D: LayoutOverrides

Si una propiedad se establece en un valor fijo en tiempo de ejecución, pero desea sobrescribirla en tiempo de diseño, puede usar el atributo d:LayoutOverrides. Todas las propiedades que deben ignorarse en tiempo de diseño se pueden enumerar, separadas por un punto y coma.

(fuente: http://wpftutorial.net/DesigntimeVsRuntime.html )

 2
Author: George Birbilis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-07-02 00:07:35