UIElement.ArrangeCore(Rect) 方法

定義

定義 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)

參數

finalRect
Rect

父系內該項目應該用來排列本身和其子項目的最終區域。

範例

ArrangeCore 實作應該呼叫基底實作以傳回大小,然後呼叫 Arrange 每個可見子專案的 方法,並使用基底實作的大小來協調這些 Arrange 呼叫所傳回的大小。 實作對帳層面的 ArrangeCore 邏輯可能會有所不同,視專案的版面配置特性而定。 在下列範例範本中, VisualChildren 是您元素可能定義的假設屬性,可協助列舉其內容; UIElement 不會在此層級定義內容集合,WPF 架構架構會將內容行為延後至衍生元素,例如特定控制項或控制項基類。

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

備註

注意

只有在您在 WPF 核心層級衍生時,才適合覆寫此方法,而且您不使用 WPF 架構層級版面配置系統和 FrameworkElement 衍生類別,因為 FrameworkElement seals ArrangeCore 。 如果您使用 WPF 架構層級的版面配置系統,則覆寫類別特定版面配置排列行為 ArrangeOverride 的適當方法是 。

給繼承者的注意事項

如果您要在 WPF 核心層級開發元素,您應該覆寫這個方法,為 WPF 核心層級元素提供唯一的排列配置行為,或針對元素的子項目做出適當的配置決策。 如果這些子專案無法從定義的模式辨識,例如 ItemCollection ,可能需要覆寫。

父元素必須在每個子專案上呼叫類別特定 Arrange(Rect) 專案,否則不會轉譯這些子專案。

適用於