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

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

En el caso de escenarios de derivación de elementos de nivel básico Arrange de WPF, el comportamiento de no debe ser (y no puede, a menos que se Shadow) cambie.For WPF core-level element deriving scenarios, the behavior for Arrange should not (and cannot, unless you shadow) be changed. En su lugar, debe invalidar ArrangeCore en la clase.Instead, you should override ArrangeCore in your class. La ArrangeCore implementación se llama internamente mediante Arrange como parte de las operaciones predeterminadas de diseño de nivel de marco de WPF.Your ArrangeCore implementation is called internally by Arrange as part of default WPF framework-level layout operations. Sin embargo, se supone que se usa el diseño de nivel de marco de WPF y su sistema de diseño, que a menudo no es el caso si se derivan específicamente elementos en el nivel UIElement de núcleo de WPF de la 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. La ArrangeCore implementación también debe llamar Arrange a 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 de WPF implica que no está FrameworkElement utilizando una clase derivada FrameworkElement , ArrangeCoreporque sella.Note that the WPF core-level scenario implies that you are not using a FrameworkElement derived class, because FrameworkElement seals ArrangeCore.

El cálculo de la posición del diseño en el nivel Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) de marco de Measure WPF en consta Arrange de una llamada y una llamada.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 Size medianteavailableSizeun argumento () proporcionado.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 la posición del rectángulo de selección de un elemento.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.

availableSizepuede ser cualquier número comprendido entre cero y infinito.availableSize can be any number from zero to infinity. Los elementos que se van a disponer devuelven el Size mínimo availableSize necesario a través del parámetro.Elements to be laid out return the minimum Size they require through the availableSize parameter.

Cuando se crea una instancia de un diseño por primera vez, Measure siempre recibe Arrangeuna llamada antes de.When a layout is first instantiated, it always receives a Measure call before Arrange. Sin embargo, después del primer paso de diseño, es posible Arrange que reciba una Measurellamada sin; esto puede ocurrir cuando se cambia una Arrange propiedad que solo afecta a (por ejemplo, la alineación) o cuando Arrange el elemento primario recibe un 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. Una Measure llamada invalidará automáticamente una Arrange llamada a.A Measure call will automatically invalidate an Arrange call.

Normalmente, las actualizaciones de diseño se producen de forma asincrónica (en el 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 de Widthlos elementos (como).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 UpdateLayout mediante el método; sin embargo, no se recomienda llamar a esta función, ya que normalmente no es necesario y puede causar un bajo rendimiento.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 en las UpdateLayout que la llamada puede ser adecuada, es probable que el sistema de diseño ya esté procesando 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 pueda 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, una Measure para y una Arrangepara.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. Los elementos situados más arriba en el árbol se encuentran en la parte superior de la cola, con el fin de evitar diseños redundantes causados 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, Measure la cola se vacía primero, seguida de la Arrange cola.When updating layout, the Measure queue is emptied first, followed by the Arrange queue. Un elemento de la Arrange cola no se organizará nunca si hay un elemento en la Measure cola.An element in the Arrange queue will never be arranged if there is an element in the Measure queue.

Se aplica a