Condividi tramite


UIElement.Arrange(Rect) Metodo

Definizione

Posiziona gli elementi figlio e determina le dimensioni per 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. Questo metodo costituisce il secondo passaggio di un aggiornamento del layout.

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

Dimensioni finali che l'elemento padre calcola per l'elemento figlio, fornite come istanza Rect.

Commenti

Per gli scenari di derivazione degli elementi a livello di framework WPF, il comportamento per Arrange non deve (e non può, a meno che non si shadow) non venga modificato. È invece necessario eseguire l'override dell'implementazione ArrangeOverride nella classe . L'implementazione ArrangeOverride viene chiamata internamente da Arrange come parte delle operazioni di layout predefinite a livello di framework WPF. L'implementazione ArrangeCore deve anche chiamare ArrangeOverride su ogni elemento figlio, se contiene elementi figlio.

Per gli scenari di derivazione degli elementi di base WPF, il comportamento per Arrange non deve (e non può, a meno che non si shadow) non venga modificato. È invece necessario eseguire l'override ArrangeCore nella classe . L'implementazione ArrangeCore viene chiamata internamente da Arrange come parte delle operazioni di layout predefinite a livello di framework WPF. Tuttavia, si presuppone che si usi il layout a livello di framework WPF e il relativo sistema di layout, che spesso non è il caso se si derivano in modo specifico elementi a livello di core WPF dalla UIElement classe di elementi di base. L'implementazione ArrangeCore deve anche chiamare Arrange su ogni elemento figlio, se contiene elementi figlio. Si noti che lo scenario di base WPF implica che non si usa una FrameworkElement classe derivata, perché FrameworkElement si sigilla ArrangeCore.

Il calcolo del posizionamento del layout a livello di framework WPF in Windows Presentation Foundation (WPF) è costituito da una chiamata e da una MeasureArrange chiamata. Durante la Measure chiamata, il sistema di layout determina i requisiti di dimensione di un elemento usando un argomento fornito Size (availableSize). Durante la Arrange chiamata, il sistema di layout finalizza le dimensioni e la posizione del rettangolo di selezione di un elemento. Per altre informazioni, vedere Layout.

availableSize può essere qualsiasi numero da zero a infinito. Gli elementi da disporre restituiscono il valore minimo Size necessario tramite il availableSize parametro .

Quando viene creata per la prima volta un'istanza di un layout, riceve sempre una Measure chiamata prima Arrangedi . Tuttavia, dopo il primo passaggio di layout, può ricevere una Arrange chiamata senza un Measureoggetto . Ciò può verificarsi quando una proprietà che influisce solo Arrange su viene modificata (ad esempio l'allineamento) o quando l'elemento padre riceve un Arrange oggetto senza un Measureoggetto . Una Measure chiamata invaliderà automaticamente una Arrange chiamata.

Gli aggiornamenti del layout vengono in genere eseguiti in modo asincrono (alla volta determinati dal sistema di layout). Un elemento potrebbe non riflettere immediatamente le modifiche apportate alle proprietà che influiscono sul ridimensionamento degli elementi , ad esempio Width.

Nota

Gli aggiornamenti del layout possono essere forzati usando il UpdateLayout metodo . Tuttavia, la chiamata a questa funzione non è consigliata, perché in genere non è necessaria e può causare prestazioni scarse. In molte situazioni in cui la chiamata UpdateLayout potrebbe essere appropriata, il sistema di layout probabilmente sta già elaborando gli aggiornamenti. Il sistema di layout può elaborare le modifiche del layout in modo da ottimizzare tutti gli aggiornamenti necessari come parte di un pacchetto.

Il sistema di layout mantiene due code separate di layout non validi, una per Measure e una per Arrange. La coda di layout viene ordinata in base all'ordine degli elementi nella struttura ad albero visuale. Gli elementi più alti nell'albero si trovano nella parte superiore della coda, per evitare layout ridondanti causati da modifiche ripetute negli elementi padre. Le voci duplicate vengono rimosse automaticamente dalla coda e gli elementi vengono rimossi automaticamente dalla coda se sono già validi.

Quando si aggiorna il layout, la Measure coda viene svuotata per prima, seguita dalla Arrange coda. Un elemento nella Arrange coda non verrà mai disposto se è presente un elemento nella Measure coda.

Si applica a