UIElement.Arrange(Rect) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Coloca los elementos secundarios y determina un tamaño para un 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. 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, y que se proporciona como una instancia Rect.
Comentarios
En el caso de los escenarios de derivación de elementos de nivel de marco de WPF, el comportamiento de Arrange no debe (y no puede, a menos que se sombree) se cambie. En su lugar, debe invalidar la implementación en la ArrangeOverride clase . La ArrangeOverride implementación se llama internamente 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.
En el caso de los escenarios de derivación de elementos de nivel básico de WPF, el comportamiento de Arrange no debe (y no, a menos que se sombree) se cambie. En su lugar, debe invalidar ArrangeCore en la clase . La ArrangeCore implementación se llama internamente Arrange como parte de las operaciones de diseño de nivel de marco de WPF predeterminadas. Sin embargo, esto supone que usa el diseño de nivel de marco de WPF y su sistema de diseño, que a menudo no es el caso si deriva elementos específicamente en el nivel básico de WPF desde la 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 FrameworkElement clase derivada, ya FrameworkElement que sella ArrangeCore.
El cálculo del posicionamiento de diseño de nivel de marco de WPF en Windows Presentation Foundation (WPF) consta de una Measure llamada y una Arrange llamada. 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 colocar 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 Arrangede . 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 del elemento (por ejemplo Width, ).
Nota
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.