Compartir a través de


UIElement.UpdateLayout Método

Definición

Garantiza que todas las posiciones de los objetos secundarios de un UIElement se actualicen correctamente para el diseño.

public:
 virtual void UpdateLayout() = UpdateLayout;
void UpdateLayout();
public void UpdateLayout();
function updateLayout()
Public Sub UpdateLayout ()

Comentarios

UpdateLayout es básicamente equivalente a llamar a InvalidateMeasure e InvalidateArrange en secuencia.

El código de la aplicación puede forzar las actualizaciones de diseño en lugar de basarse en el comportamiento del sistema de diseño integrado mediante el método UpdateLayout. Sin embargo, por lo general no se recomienda. Normalmente no es necesario y puede provocar un rendimiento deficiente si se usa demasiado. En muchas situaciones en las que llamar a UpdateLayout desde el código de la aplicación podría ser adecuado debido a cambios en las propiedades, es probable que el sistema de diseño ya esté procesando actualizaciones. El sistema de diseño también tiene optimizaciones para tratar con cascadas de cambios de diseño a través de relaciones de elementos primarios y secundarios, y la llamada a UpdateLayout puede funcionar con estas optimizaciones. Sin embargo, es posible que existan situaciones de diseño en escenarios más complicados en los que llamar a UpdateLayout es la mejor opción para resolver un problema de tiempo u otro problema con el diseño. Simplemente úselo deliberadamente y con moderación. En los casos en los que necesite llamar a UpdateLayout, probablemente lo llamará justo después de llamar Children.Add a en alguna colección de elementos secundarios de un elemento primario de diseño común y, a continuación, llamar a UpdateLayout en ese elemento primario para que el sistema de diseño reconozca el nuevo elemento secundario agregado.

Un escenario para UpdateLayout es cuando tiene contenedores vinculados como RichTextBlock y RichTextBlockOverflow, ha realizado cambios en tiempo de ejecución en el contenido y quiere asegurarse de que las operaciones que no están vinculadas específicamente a mostrar la interfaz de usuario tienen la oportunidad de ejecutar el diseño y desencadenar el reequilibrio de contenido entre los contenedores vinculados. Por ejemplo, puede que desee hacer esto para preparar un diseño para imprimir. Para obtener un ejemplo de este escenario, consulte el escenario #5 en Ejemplo de impresión.

Sugerencia

Si tiene un escenario en el que usa el enlace de datos a la interfaz de usuario y no ve que el diseño refleje las actualizaciones en las colecciones de orígenes de datos, llamar a UpdateLayout probablemente no le ayudará. Es más probable que tenga problemas con las declaraciones de enlace, el contexto de datos o con la compatibilidad con INotifyPropertyChanged o INotifyCollectionChanged en el origen de datos.

Se aplica a

Consulte también