UIElement.ArrangeCore(Rect) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
定義 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) 專案,否則不會轉譯這些子專案。