UIElement.Arrange(Rect) Método

Definición

Coloca los elementos secundarios y determina un tamaño para .UIElement Los elementos primarios llaman a este método desde su ArrangeCore(Rect) implementación (o un equivalente de nivel de marco de WPF) para formar una actualización de diseño recursiva. Este método constituye el segundo paso de una actualización de diseño.

public:
 void Arrange(System::Windows::Rect finalRect);
public void Arrange(System.Windows.Rect finalRect);
member this.Arrange : System.Windows.Rect -> unit
Public Sub Arrange (finalRect As Rect)

Parámetros

finalRect
Rect

Tamaño final que el elemento primario calcula para el elemento secundario, proporcionado como una Rect instancia.

Comentarios

Para WPF escenarios derivados de elementos de nivel de marco, el comportamiento de Arrange no debe (y no puede, a menos que se cambie la sombra). En su lugar, debe invalidar la implementación en la ArrangeOverride clase . La implementación de ArrangeOverride se llama internamente mediante Arrange como parte de las operaciones de diseño de nivel de marco de WPF predeterminadas. La ArrangeCore implementación también debe llamar a ArrangeOverride en cada elemento secundario, si tiene elementos secundarios.

Para WPF escenarios de derivación de elementos de nivel básico, el comportamiento de Arrange no debe (y no puede, a menos que se cambie la sombra). En su lugar, debe invalidar ArrangeCore en la clase . La implementación de ArrangeCore se llama internamente mediante Arrange como parte de las operaciones de diseño de nivel de marco de WPF predeterminadas. Sin embargo, esto supone que usa WPF diseño de nivel de marco y su sistema de diseño, que a menudo no es el caso si deriva específicamente elementos en el nivel de núcleo de WPF del UIElement clase de elemento base. La ArrangeCore implementación también debe llamar a Arrange en cada elemento secundario, si tiene elementos secundarios. Tenga en cuenta que el escenario de nivel básico de WPF implica que no se usa una clase derivada de FrameworkElement, ya que FrameworkElement sella ArrangeCore.

El cálculo del posicionamiento de diseño de nivel de marco de WPF en Windows Presentation Foundation (WPF) consta de una llamada de Measure y una llamada Arrange. Durante la Measure llamada, el sistema de diseño determina los requisitos de tamaño de un elemento mediante un argumento proporcionado Size (availableSize). Durante la Arrange llamada, el sistema de diseño finaliza el tamaño y la posición del cuadro de límite de un elemento. Para obtener más información, vea Diseño.

availableSize puede ser cualquier número de cero a infinito. Los elementos que se van a disponer devuelven el mínimo Size que requieren a través del availableSize parámetro .

Cuando se crea una instancia de un diseño por primera vez, siempre recibe una Measure llamada antes de Arrange. Sin embargo, después del primer paso de diseño, puede recibir una Arrange llamada sin un Measure; esto puede ocurrir cuando una propiedad que afecta solo Arrange se cambia (por ejemplo, la alineación) o cuando el elemento primario recibe un Arrange sin Measure. Una Measure llamada invalidará automáticamente una Arrange llamada.

Por lo general, las actualizaciones de diseño se producen de forma asincrónica (en un momento determinado por el sistema de diseño). Es posible que un elemento no refleje inmediatamente los cambios en las propiedades que afectan al ajuste de tamaño de elemento (por ejemplo Width, ).

Note

Las actualizaciones de diseño se pueden forzar mediante el UpdateLayout método ; sin embargo, no se recomienda llamar a esta función, ya que normalmente no es necesario y puede causar un rendimiento deficiente. En muchas situaciones en las que la llamada UpdateLayout podría ser adecuada, es probable que el sistema de diseño ya esté procesando las actualizaciones. El sistema de diseño puede procesar los cambios de diseño de una manera que pueda optimizar todas las actualizaciones necesarias como parte de un paquete.

El sistema de diseño mantiene dos colas independientes de diseños no válidos, una para Measure y otra para Arrange. La cola de diseño se ordena en función del orden de los elementos del árbol visual. Los elementos más altos del árbol están en la parte superior de la cola, con el fin de evitar diseños redundantes causados por cambios repetidos en los elementos primarios. Las entradas duplicadas se quitan automáticamente de la cola y los elementos se quitan automáticamente de la cola si ya son válidos.

Al actualizar el diseño, la Measure cola se vacía primero, seguida de la Arrange cola. Un elemento de la Arrange cola nunca se organizará si hay un elemento en la Measure cola.

Se aplica a