hay una muy buena razón no utilizar el ActualWidth
para unirse a (obviamente ActualHeight
en consecuencia). Cuando configura el Width
de un elemento, al ActualWidth
de otro puede romper la cadena de diseño.
En el mejor de los casos, su elemento/control debe analizarse una vez finalizado el proceso de disposición del principal (el origen de enlace). Eso significa tiempo adicional. Si está en el mismo nivel de jerarquía que el elemento primario, el proceso de diseño necesita dos ejecuciones (al menos) para calcular un tamaño definitivo.
Por ejemplo, yo tenía un control que tenía su propiedad de tamaño anular en un estilo que se fijaría a la TemplatedParent
(no hacer):
<Rectangle DockPanel.Dock="Top" Width="{TemplateBinding ActualWidth}"
Height="1" Fill="#000000"/>
Al cambiar el tamaño de la ventana que contiene, el control evitaría que el contenedor se hiciera más pequeño y frenaría el diseño. Si se establece en la Width
resolverá el problema (hacer):
<Rectangle DockPanel.Dock="Top" Width="{TemplateBinding Width}"
Height="1" Fill="#000000"/>
Si usted tiene que utilizar el ActualWidth
en general algo está mal con su xaml. Es mejor arreglar eso en lugar de estropear los tamaños finales de la ejecución del diseño.
En realidad, el tamaño del diseño no es el tamaño representado. – chuckj
@chuckj, ¿qué atributo usaría uno para obtener el tamaño representado? – dumbledad
@dumbledad '.RenderSize.Width' – Mafii