語言

FrameworkElement.GetVisualChild(Int32) 方法

定義

覆蓋 GetVisualChild(Int32),並從一組子元素中回傳指定索引的子節點。

protected:
 override System::Windows::Media::Visual ^ GetVisualChild(int index);
protected override System.Windows.Media.Visual GetVisualChild(int index);
override this.GetVisualChild : int -> System.Windows.Media.Visual
Protected Overrides Function GetVisualChild (index As Integer) As Visual

參數

index
Int32

集合中請求子元素的以零為基礎的索引。

傳回

請求的兒童元素。 此回傳不應回傳 null;若所提供的索引超出範圍,則會拋出例外。

範例

以下範例展示了自訂 Adorner 如何利用它為多個視覺子節點維護的 a VisualCollection 宣告的值。 這些值透過覆寫 和 VisualChildrenCountGetVisualChild來報告。

// To store and manage the adorner's visual children.
VisualCollection visualChildren;
' To store and manage the adorner's visual children.
Private visualChildren As VisualCollection
// Override the VisualChildrenCount and GetVisualChild properties to interface with 
// the adorner's visual collection.
protected override int VisualChildrenCount { get { return visualChildren.Count; } }
protected override Visual GetVisualChild(int index) { return visualChildren[index]; }
' Override the VisualChildrenCount and GetVisualChild properties to interface with 
' the adorner's visual collection.
Protected Overrides ReadOnly Property VisualChildrenCount() As Integer
    Get
        Return visualChildren.Count
    End Get
End Property
Protected Overrides Function GetVisualChild(ByVal index As Integer) As Visual
    Return visualChildren(index)
End Function

備註

在實 FrameworkElement 作中,唯一有效的索引是零。 內容 GetVisualChild 模型支援零或一個子元素,而非集合。

給繼承者的注意事項

此實作僅適用於不維持更多描述性視覺子元素集合的元素。 任何擁有此類集合的元素,必須覆寫此方法,並將索引映射到子元素集合中由該元素支援的等價索引。 範圍介於 0 到 VisualChildrenCount (-1) 的索引應該會回傳一個有效元素;其他索引則會拋出超出範圍的例外。 一個支援子集合並覆蓋 GetVisualChild(Int32) 以回傳多重可能子集合的元素類型範例為 Panel。

預設實作 FrameworkElement 假設只有一個視覺子節點。 任何傳遞非 index 零值的值都會拋出例外。 幾個常見元素,例如裝飾器、裝飾器,或具有專門渲染的元素,會覆蓋 FrameworkElement 實作(從中間基類轉換)。 有些實作仍強制執行一個視覺子體,而另一些則允許集合。

適用於