UIElement.Arrange(Rect) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Posiziona gli elementi figlio e determina una dimensione per un oggetto UIElement. Gli elementi padre chiamano questo metodo dall'implementazione ArrangeCore(Rect) (o un equivalente a livello di framework macchine virtuali Windows) 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
Dimensione finale calcolata dall'elemento padre per l'elemento figlio, fornita come Rect istanza.
Commenti
Per macchine virtuali Windows gli scenari di derivazione degli elementi a livello di framework, il comportamento per Arrange non deve (e non può, a meno che non si shadow) venga modificato. È invece necessario eseguire l'override dell'implementazione ArrangeOverride nella classe . L'implementazione di ArrangeOverride viene chiamata internamente da Arrange come parte delle operazioni di layout predefinite a livello di framework macchine virtuali Windows. L'implementazione ArrangeCore deve anche chiamare ArrangeOverride su ogni elemento figlio, se contiene elementi figlio.
Per macchine virtuali Windows scenari di derivazione degli elementi di base, il comportamento per Arrange non deve (e non può, a meno che non si shadow) venga modificato. È invece consigliabile eseguire l'override ArrangeCore nella classe. L'implementazione di ArrangeCore viene chiamata internamente da Arrange come parte delle operazioni di layout predefinite a livello di framework macchine virtuali Windows. Tuttavia, si presuppone che si stia usando macchine virtuali Windows layout a livello di framework e il relativo sistema di layout, che spesso non è il caso se si stanno derivando in modo specifico elementi a livello di base macchine virtuali Windows dalla classe dell'elemento base UIElement. L'implementazione ArrangeCore deve anche chiamare Arrange su ogni elemento figlio, se contiene elementi figlio. Si noti che lo scenario a livello di core macchine virtuali Windows implica che non si usa una classe derivata FrameworkElement, perché FrameworkElement sigilli ArrangeCore.
Il calcolo del posizionamento del layout a livello di framework macchine virtuali Windows in Windows Presentation Foundation (macchine virtuali Windows) è costituito da una chiamata Measure e da una chiamata /Arrange. Durante la Measure chiamata, il sistema di layout determina i requisiti di dimensione di un elemento usando un argomento (Size) fornito 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 minimo Size necessario tramite il availableSize parametro .
Quando viene creata 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 . MeasureCiò può verificarsi quando una proprietà che influisce solo Arrange su viene modificata (ad esempio l'allineamento) o quando l'elemento padre riceve un oggetto Arrange 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.
Note
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 di 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ù in alto 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.