Condividi tramite


UIElement.ArrangeCore(Rect) Metodo

Definizione

Definisce il modello per la definizione di layout per la disposizione a livello di base WPF.

protected:
 virtual void ArrangeCore(System::Windows::Rect finalRect);
protected virtual void ArrangeCore (System.Windows.Rect finalRect);
abstract member ArrangeCore : System.Windows.Rect -> unit
override this.ArrangeCore : System.Windows.Rect -> unit
Protected Overridable Sub ArrangeCore (finalRect As Rect)

Parametri

finalRect
Rect

Area finale nel controllo padre che l'elemento deve usare per disporre se stesso e i relativi elementi figlio.

Esempio

ArrangeCore Le implementazioni devono chiamare l'implementazione di base per restituire una dimensione, quindi chiamare il Arrange metodo di ogni elemento figlio visibile e riconciliare le dimensioni restituite da queste Arrange chiamate con le dimensioni dell'implementazione di base. La logica per l'aspetto di riconciliazione di un'implementazione ArrangeCore può variare, a seconda delle caratteristiche di layout dell'elemento. Nel modello VisualChildren di esempio seguente, è una proprietà ipotetica che l'elemento potrebbe definire per enumerare il contenuto. UIElement Non definisce raccolte di contenuti a questo livello, l'architettura a livello di framework WPF rinvia il comportamento del contenuto agli elementi derivati, ad esempio controlli specifici o classi di base del controllo.

protected override void ArrangeCore(Rect finalRect)
{
     //Call base, it will set offset and RenderBounds to the finalRect:
     base.ArrangeCore(finalRect);
     foreach (UIElement child in VisualChildren)
     {
         child.Arrange(new Rect(childX, childY, childWidth, childHeight));
     }
 }
Protected Overrides Sub ArrangeCore(ByVal finalRect As Rect)
     'Call base, it will set offset and RenderBounds to the finalRect:
     MyBase.ArrangeCore(finalRect)
     For Each child As UIElement In VisualChildren
         child.Arrange(New Rect(childX, childY, childWidth, childHeight))
     Next child
End Sub

Commenti

Nota

L'override di questo metodo è appropriato solo se si deriva a livello di core WPF e non si usa il sistema di layout a livello di framework WPF e FrameworkElement la classe derivata, perché FrameworkElement si sigilla ArrangeCore. Se si usa il sistema di layout a livello di framework WPF, il metodo appropriato per eseguire l'override per il comportamento di disposizione del layout specifico della classe è ArrangeOverride.

Note per gli eredi

Se si sviluppano elementi a livello di core WPF, è necessario eseguire l'override di questo metodo per assegnare all'elemento di base WPF un comportamento di layout di disposizione univoco o per prendere decisioni di layout appropriate sugli elementi figlio degli elementi. Un override potrebbe essere necessario se tali elementi figlio non sono riconoscibili da un criterio definito, ad esempio .ItemCollection

Un elemento padre deve chiamare la classe specifica Arrange(Rect) per ogni elemento figlio. In caso contrario, tali elementi figlio non vengono sottoposti a rendering.

Si applica a