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

コレクション内の要求された子要素の 0 から始まるインデックス。

戻り値

Visual

要求された子要素。 これは null を返しません。指定されたインデックスが範囲外の場合、例外がスローされます。

次の例は、カスタム装飾が複数のビジュアルの子に対して保持する値によって VisualCollection 宣言された値を使用する方法を示しています。 これらの値は、⿇と GetVisualChildVisualChildrenCountオーバーライドを通じて報告されます。

// 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 、有効なインデックスは 0 のみです。 コンテンツ モデル GetVisualChild では、コレクションではなく、0 個または 1 個の子要素がサポートされます。

注意 (継承者)

この実装は、視覚的な子要素のよりわかりやすいコレクションを保持していない要素に対してのみ有効です。 このようなコレクションを持つ要素は、このメソッドをオーバーライドし、その要素でサポートされている子要素コレクション内の同等のインデックスにインデックスをマップする必要があります。 0 から (マイナス 1) の VisualChildrenCount 範囲のインデックスは有効な要素を返す必要があります。他のインデックスは範囲外の例外をスローする必要があります。 子コレクションをサポートし、複数の子を返すオーバーライド GetVisualChild(Int32) を行う要素型の例を次に示 Panelします。

既定の FrameworkElement 実装では、ビジュアルの子が 1 人であると想定されます。 0 以外の値が index 渡されると、例外がスローされます。 デコレーター、装飾、特殊なレンダリングを持つ要素など、いくつかの一般的な要素は、実装をオーバーライドします FrameworkElement (中間基底クラスからの実装の)。 一部の実装では、まだ 1 つのビジュアル子が適用されますが、他の実装ではコレクションが許可されます。

適用対象