Visual.AddVisualChild(Visual) Visual.AddVisualChild(Visual) Visual.AddVisualChild(Visual) Visual.AddVisualChild(Visual) Method

定義

2 つのビジュアル間の親子リレーションシップを定義します。

protected:
 void AddVisualChild(System::Windows::Media::Visual ^ child);
protected void AddVisualChild (System.Windows.Media.Visual child);
member this.AddVisualChild : System.Windows.Media.Visual -> unit
Protected Sub AddVisualChild (child As Visual)

パラメーター

child
Visual Visual Visual Visual

親ビジュアルに追加するビジュアル子オブジェクト。

次の例では、ビジュアルな子のカスタム ストレージ要件を定義する方法を示します。 この例では、AddVisualChildRemoveVisualChild親ビジュアル間の親子リレーションシップを設定するメソッドをおよびchild。 例では、ビジュアル ツリーを正しく列挙するためには、オーバーライドされた実装を提供します、GetVisualChildメソッドとVisualChildrenCountプロパティ。

注意

使用することはできますがVisualCollection親子のビジュアル オブジェクト間のリレーションシップを作成するには 1 つだけの子が親にリンクされている場合に、独自のカスタム ストレージ実装を提供する方が効率的です。

// Create a host visual derived from the FrameworkElement class.
// This class provides layout, event handling, and container support for
// the child visual object.
public class MyVisualHost : FrameworkElement
{
    private DrawingVisual _child;

    public MyVisualHost(DrawingVisual drawingVisual)
    {
        _child = drawingVisual;
        this.AddVisualChild(_child);
    }

    public DrawingVisual Child
    {
        get
        {
            return _child;
        }

        set
        {
            if (_child != value)
            {
                this.RemoveVisualChild(_child);
                _child = value;
                this.AddVisualChild(_child);
            }
        }
    }

    // Provide a required override for the VisualChildrenCount property.
    protected override int VisualChildrenCount
    {
        get { return _child == null ? 0 : 1; }
    }

    // Provide a required override for the GetVisualChild method.
    protected override Visual GetVisualChild(int index)
    {
        if (_child == null)
        {
            throw new ArgumentOutOfRangeException();
        }

        return _child;
    }
' Create a host visual derived from the FrameworkElement class.
' This class provides layout, event handling, and container support for
' the child visual object.
Public Class MyVisualHost
	Inherits FrameworkElement
	Private _child As DrawingVisual

	Public Sub New(ByVal drawingVisual As DrawingVisual)
		_child = drawingVisual
		Me.AddVisualChild(_child)
	End Sub

	Public Property Child() As DrawingVisual
		Get
			Return _child
		End Get

		Set(ByVal value As DrawingVisual)
			If _child IsNot value Then
				Me.RemoveVisualChild(_child)
				_child = value
				Me.AddVisualChild(_child)
			End If
		End Set
	End Property

	' Provide a required override for the VisualChildrenCount property.
	Protected Overrides ReadOnly Property VisualChildrenCount() As Integer
		Get
			Return If(_child Is Nothing, 0, 1)
		End Get
	End Property

	' Provide a required override for the GetVisualChild method.
	Protected Overrides Function GetVisualChild(ByVal index As Integer) As Visual
		If _child Is Nothing Then
			Throw New ArgumentOutOfRangeException()
		End If

		Return _child
	End Function

注釈

AddVisualChildメソッドが 2 つのビジュアル オブジェクト間の親子リレーションシップを設定します。 ビジュアル子オブジェクトの基になるストレージ実装より低レベルの制御を必要がある場合、このメソッドを使用する必要があります。 VisualCollection 子オブジェクトを格納するため、既定の実装として使用できます。

適用対象

こちらもご覧ください