UIElement.ArrangeCore(Rect) 方法

定義

定義 WPF 核心層級排列版面配置定義的範本。

C#
protected virtual void ArrangeCore (System.Windows.Rect finalRect);

參數

finalRect
Rect

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

範例

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

C#
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));
     }
 }

備註

備註

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

給繼承者的注意事項

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

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

適用於

產品 版本
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
Windows Desktop 3.0, 3.1, 5, 6, 7