UIElement.Arrange(Rect) UIElement.Arrange(Rect) UIElement.Arrange(Rect) UIElement.Arrange(Rect) Method

Definición

Coloca los elementos secundarios y determina un tamaño para un UIElement.Positions child elements and determines a size for a UIElement. Los elementos primarios llaman a este método desde su implementación de ArrangeCore(Rect) (o un equivalente de nivel de marco WPF) para formar una actualización de diseño recursiva.Parent elements call this method from their ArrangeCore(Rect) implementation (or a WPF framework-level equivalent) to form a recursive layout update. Este método constituye el segundo paso de una actualización de diseño.This method constitutes the second pass of a layout update.

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 Rect Rect Rect

Tamaño final que el elemento primario calcula para el elemento secundario, y que se proporciona como una instancia Rect.The final size that the parent computes for the child element, provided as a Rect instance.

Comentarios

Para el elemento de nivel de marco WPF derivar el comportamiento de los escenarios, Arrange no debería (y no es posible, a menos que sombrea) se puede cambiar.For WPF framework-level element deriving scenarios, behavior for Arrange should not (and cannot, unless you shadow) be changed. En su lugar, se debe reemplazar el ArrangeOverride implementación en su clase.Instead, you should override the ArrangeOverride implementation in your class. Su ArrangeOverride se llama internamente a implementación Arrange como parte de las operaciones de diseño de nivel de marco WPF predeterminado.Your ArrangeOverride implementation is called internally by Arrange as part of default WPF framework-level layout operations. Su ArrangeCore implementación también debe llamar a ArrangeOverride en cada elemento secundario, si tiene elementos secundarios.Your ArrangeCore implementation should also call ArrangeOverride on each child element, if it has child elements.

Para el elemento de nivel de núcleo WPF derivar escenarios, el comportamiento de Arrange no debería (y no es posible, a menos que sombrea) se puede cambiar.For WPF core-level element deriving scenarios, the behavior for Arrange should not (and cannot, unless you shadow) be changed. En su lugar, se debe reemplazar ArrangeCore en su clase.Instead, you should override ArrangeCore in your class. Su ArrangeCore se llama internamente a implementación Arrange como parte de las operaciones de diseño de nivel de marco WPF predeterminado.Your ArrangeCore implementation is called internally by Arrange as part of default WPF framework-level layout operations. Sin embargo, esto supone que está usando su sistema de diseño, que a menudo no es el caso si va a derivar específicamente elementos en el nivel de núcleo de WPF y de diseño de nivel de marco WPF la UIElement clase de elemento base.However, this assumes you are using WPF framework-level layout and its layout system, which is often not the case if you are specifically deriving elements at the WPF core-level from the UIElement base element class. Su ArrangeCore implementación también debe llamar a Arrange en cada elemento secundario, si tiene elementos secundarios.Your ArrangeCore implementation should also call Arrange on each child element, if it has child elements. Tenga en cuenta que el escenario de nivel básico WPF implica que no está usando un FrameworkElement clase derivada, porque FrameworkElement sellos ArrangeCore.Note that the WPF core-level scenario implies that you are not using a FrameworkElement derived class, because FrameworkElement seals ArrangeCore.

Cálculo de la posición de diseño de nivel de marco WPF en Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) consta de un Measure llamar y un Arrange llamar.Computation of WPF framework-level layout positioning in Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) consists of a Measure call and an Arrange call. Durante la Measure llamada, el sistema de diseño determina los requisitos de tamaño de un elemento mediante un proporcionado Size (availableSize) argumento.During the Measure call, the layout system determines an element's size requirements using a provided Size (availableSize) argument. Durante la Arrange llamada, el sistema de diseño finaliza el tamaño y posición de un elemento del cuadro de límite.During the Arrange call, the layout system finalizes the size and position of an element's bounding box. Para obtener más información, vea Diseño.For more information, see Layout.

availableSize puede ser cualquier número entre cero e infinito.availableSize can be any number from zero to infinity. Los elementos que se coloquen devuelven el mínimo Size necesitan a través de la availableSize parámetro.Elements to be laid out return the minimum Size they require through the availableSize parameter.

Cuando primero se crea una instancia de un diseño, siempre recibe una Measure llamar antes Arrange.When a layout is first instantiated, it always receives a Measure call before Arrange. Sin embargo, después de la primera fase de diseño, puede recibir un Arrange llamar sin una Measure; Esto puede ocurrir cuando una propiedad que afecta solo a Arrange cambia (por ejemplo, la alineación), o cuando el elemento primario recibe un Arrange sin un Measure.However, after the first layout pass, it may receive an Arrange call without a Measure; this can happen when a property that affects only Arrange is changed (such as alignment), or when the parent receives an Arrange without a Measure. Un Measure llamada invalidará automáticamente un Arrange llamar.A Measure call will automatically invalidate an Arrange call.

Suelen producirán las actualizaciones de diseño asincrónicamente (en un momento determinado por el sistema de diseño).Layout updates generally occur asynchronously (at a time determined by the layout system). Un elemento podría no reflejar inmediatamente los cambios en las propiedades que afectan al tamaño del elemento (como Width).An element might not immediately reflect changes to properties that affect element sizing (such as Width).

Nota

Las actualizaciones de diseño se pueden forzar mediante el uso de la UpdateLayout método; sin embargo, una llamada a esta función no se recomienda, ya que normalmente no es necesario y puede provocar un rendimiento deficiente.Layout updates can be forced by using the UpdateLayout method; however, calling this function is not recommended, as it is usually unnecessary and can cause poor performance. En muchas situaciones donde llamar a UpdateLayout podría ser adecuado, el sistema de diseño probablemente ya está procesando las actualizaciones.In many situations where calling UpdateLayout might be appropriate, the layout system will probably already be processing updates. El sistema de diseño puede procesar los cambios de diseño de forma que puede optimizar todas las actualizaciones necesarias como parte de un paquete.The layout system can process layout changes in a manner that can optimize all necessary updates as part of a package.

El sistema de diseño mantiene dos colas independientes de diseños no válidos, uno para Measure y otro para Arrange.The layout system keeps two separate queues of invalid layouts, one for Measure and one for Arrange. La cola de diseño se ordena según el orden de los elementos en el árbol visual.The layout queue is sorted based upon the order of elements in the visual tree. Son los elementos más arriba en el árbol de la parte superior de la cola, para evitar diseños redundantes producidos por cambios repetidos en los elementos primarios.Elements higher in the tree are at the top of the queue, in order to avoid redundant layouts caused by repeated changes in parents. 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.Duplicate entries are automatically removed from the queue, and elements are automatically removed from the queue if they are already valid.

Al actualizar el diseño, la Measure cola se vacía en primer lugar, seguido por el Arrange cola.When updating layout, the Measure queue is emptied first, followed by the Arrange queue. Un elemento en el Arrange nunca se organizarán cola si hay un elemento en el Measure cola.An element in the Arrange queue will never be arranged if there is an element in the Measure queue.

Se aplica a