UIElement.Measure(Size) UIElement.Measure(Size) UIElement.Measure(Size) UIElement.Measure(Size) Method

Definizione

Aggiorna DesiredSize di UIElement.Updates the DesiredSize of a UIElement. Gli elementi padre chiamano questo metodo dalle rispettive implementazioni di MeasureCore(Size) per formare un aggiornamento ricorsivo del layout.Parent elements call this method from their own MeasureCore(Size) implementations to form a recursive layout update. Questo metodo costituisce il primo passaggio (passaggio di misurazione) di un aggiornamento del layout.Calling this method constitutes the first pass (the "Measure" pass) of a layout update.

public:
 void Measure(System::Windows::Size availableSize);
public void Measure (System.Windows.Size availableSize);
member this.Measure : System.Windows.Size -> unit
Public Sub Measure (availableSize As Size)

Parametri

availableSize
Size Size Size Size

Lo spazio disponibile che un elemento padre può allocare a un elemento figlio.The available space that a parent element can allocate a child element. Un elemento figlio può richiedere più spazio rispetto a quello disponibile. È possibile adattare la dimensione specificata se lo scorrimento è possibile nel modello di contenuto per l'elemento corrente.A child element can request a larger space than what is available; the provided size might be accommodated if scrolling is possible in the content model for the current element.

Commenti

Il calcolo del posizionamento del Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) layout in è costituito Measure da una chiamata Arrange e da una chiamata a.Computation of layout positioning in Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) is comprised of a Measure call and an Arrange call. Durante la Measure chiamata, un elemento determina i requisiti di dimensione tramite un availableSize input.During the Measure call, an element determines its size requirements by using an availableSize input. Durante la Arrange chiamata, la dimensione dell'elemento viene finalizzata.During the Arrange call, the element size is finalized.

availableSizepuò essere qualsiasi numero da zero a infinito.availableSize can be any number from zero to infinite. Gli elementi che fanno parte del layout devono Size restituire il valore minimo necessario availableSizeper un determinato.Elements participating in layout should return the minimum Size they require for a given availableSize.

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 modo asincrono, in modo che il thread principale non sia in attesa di ogni possibile modifica del layout.Layout updates happen asynchronously, such that the main thread is not waiting for every possible layout change. L'esecuzione di query su un elemento tramite il controllo code-behind dei valori delle proprietà potrebbe non riflettere immediatamente le modifiche apportate alle proprietà che Width interagiscono con le caratteristiche di ridimensionamento o layout (ad esempio, la proprietà).Querying an element via code-behind checking of property values may not immediately reflect changes to properties that interact with the sizing or layout characteristics (the Width property, for example).

Nota

Gli aggiornamenti del layout possono essere forzati UpdateLayout tramite il metodo.Layout updates can be forced by using the UpdateLayout method. La chiamata a questo metodo, tuttavia, non è in genere necessaria e può causare scarse prestazioni.However, calling this method is usually unnecessary and can cause poor performance.

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 dell'elemento che esegue il layout; gli elementi più in alto nell'albero si trovano nella parte superiore della coda, per evitare il layout ridondante causato da modifiche ripetute negli elementi padre.The layout queue is sorted based upon the order of elements in the visual tree of the element performing layout; elements higher in the tree are at the top of the queue, 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à stati convalidati per il layout.Duplicate entries are automatically removed from the queue, and elements are automatically removed from the queue if they are already layout-validated.

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