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

Definizione

Posiziona gli elementi figlio e determina le dimensioni per UIElement.Positions child elements and determines a size for a UIElement. Gli elementi padre chiamano questo metodo dalla rispettiva implementazione ArrangeCore(Rect) (o l'equivalente a livello di framework WPF) per formare un aggiornamento ricorsivo del layout.Parent elements call this method from their ArrangeCore(Rect) implementation (or a WPF framework-level equivalent) to form a recursive layout update. Questo metodo costituisce il secondo passaggio di un aggiornamento del layout.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)

Parametri

finalRect
Rect Rect Rect Rect

Dimensioni finali che l'elemento padre calcola per l'elemento figlio, fornite come istanza Rect.The final size that the parent computes for the child element, provided as a Rect instance.

Commenti

Per gli scenari di derivazione di elementi a livello di Arrange Framework WPF, il comportamento per non deve (e non può, a meno che non si Shadow) venga modificato.For WPF framework-level element deriving scenarios, behavior for Arrange should not (and cannot, unless you shadow) be changed. È invece consigliabile eseguire l'override ArrangeOverride dell'implementazione nella classe.Instead, you should override the ArrangeOverride implementation in your class. L' ArrangeOverride implementazione viene chiamata internamente Arrange da come parte delle operazioni predefinite di layout a livello di Framework WPF.Your ArrangeOverride implementation is called internally by Arrange as part of default WPF framework-level layout operations. L' ArrangeCore implementazione deve chiamare ArrangeOverride anche su ogni elemento figlio, se dispone di elementi figlio.Your ArrangeCore implementation should also call ArrangeOverride on each child element, if it has child elements.

Per gli scenari di derivazione di elementi a livello di Core Arrange WPF, il comportamento per non deve (e non può, a meno che non si Shadow) venga modificato.For WPF core-level element deriving scenarios, the behavior for Arrange should not (and cannot, unless you shadow) be changed. È invece consigliabile eseguire l' ArrangeCore override di nella classe.Instead, you should override ArrangeCore in your class. L' ArrangeCore implementazione viene chiamata internamente Arrange da come parte delle operazioni predefinite di layout a livello di Framework WPF.Your ArrangeCore implementation is called internally by Arrange as part of default WPF framework-level layout operations. Tuttavia, si presuppone che si utilizzi il layout a livello di Framework WPF e il relativo sistema di layout, che spesso non avviene se si derivano in modo specifico elementi a livello di Core UIElement WPF dalla classe dell'elemento di 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. L' ArrangeCore implementazione deve chiamare Arrange anche su ogni elemento figlio, se dispone di elementi figlio.Your ArrangeCore implementation should also call Arrange on each child element, if it has child elements. Si noti che lo scenario a livello di core WPF implica che non si sta FrameworkElement usando una classe derivata FrameworkElement , ArrangeCoreperché Seals.Note that the WPF core-level scenario implies that you are not using a FrameworkElement derived class, because FrameworkElement seals ArrangeCore.

Il calcolo del posizionamento del layout a livello di Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) Framework WPF in Measure è costituito Arrange da una chiamata e da una chiamata a.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 chiamata, il sistema di layout determina i requisiti di dimensione di un elemento Size utilizzandoavailableSizeun argomento fornito ().During the Measure call, the layout system determines an element's size requirements using a provided Size (availableSize) argument. Durante la Arrange chiamata, il sistema di layout finalizza le dimensioni e la posizione del rettangolo di delimitazione di un elemento.During the Arrange call, the layout system finalizes the size and position of an element's bounding box. Per altre informazioni, vedere Layout.For more information, see Layout.

availableSizepuò essere qualsiasi numero da zero a infinito.availableSize can be any number from zero to infinity. Gli elementi da impostare restituiscono il valore Size minimo richiesto tramite il availableSize parametro.Elements to be laid out return the minimum Size they require through the availableSize parameter.

Quando viene creata una prima istanza di un layout, riceve sempre Measure una chiamata Arrangeprima di.When a layout is first instantiated, it always receives a Measure call before Arrange. Tuttavia, dopo il primo passaggio di layout, può ricevere una Arrange chiamata Measuresenza. questa situazione può verificarsi quando una proprietà che interessa solo Arrange viene modificata (ad esempio, l'allineamento) o quando l'elemento padre Arrange riceve un oggetto senza 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 chiamata invalida automaticamente una Arrange chiamata.A Measure call will automatically invalidate an Arrange call.

Gli aggiornamenti del layout si verificano in genere in modo asincrono (in un momento determinato dal sistema di layout).Layout updates generally occur asynchronously (at a time determined by the layout system). Un elemento potrebbe non riflettere immediatamente le modifiche apportate alle proprietà che influiscono Widthsul dimensionamento degli elementi, ad esempio.An element might not immediately reflect changes to properties that affect element sizing (such as Width).

Nota

Gli aggiornamenti del layout possono essere forzati UpdateLayout usando il metodo. Tuttavia, non è consigliabile chiamare questa funzione, perché in genere non è necessaria e può causare prestazioni ridotte.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. In molte situazioni in cui UpdateLayout la chiamata potrebbe essere appropriata, è probabile che il sistema di layout stia già elaborando gli aggiornamenti.In many situations where calling UpdateLayout might be appropriate, the layout system will probably already be processing updates. Il sistema di layout può elaborare le modifiche di layout in modo da ottimizzare tutti gli aggiornamenti necessari come parte di un pacchetto.The layout system can process layout changes in a manner that can optimize all necessary updates as part of a package.

Il sistema di layout mantiene due code separate di layout non validi, una per Measure e una per Arrange.The layout system keeps two separate queues of invalid layouts, one for Measure and one for Arrange. La coda di layout è ordinata in base all'ordine degli elementi nella struttura ad albero visuale.The layout queue is sorted based upon the order of elements in the visual tree. Gli elementi più in alto nell'albero si trovano nella parte superiore della coda, in modo da evitare il layout ridondante causato da modifiche ripetute negli elementi padre.Elements higher in the tree are at the top of the queue, in order to avoid redundant layouts caused by repeated changes in parents. Le voci duplicate vengono rimosse automaticamente dalla coda e gli elementi vengono rimossi automaticamente dalla coda se sono già validi.Duplicate entries are automatically removed from the queue, and elements are automatically removed from the queue if they are already valid.

Quando si aggiorna il layout Measure , la coda viene svuotata Arrange per prima, seguita dalla coda.When updating layout, the Measure queue is emptied first, followed by the Arrange queue. Un elemento nella Arrange coda non verrà mai disposto se è presente un elemento Measure nella coda.An element in the Arrange queue will never be arranged if there is an element in the Measure queue.

Si applica a