英語で読む

次の方法で共有


Visual.RemoveVisualChild(Visual) メソッド

定義

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

C#
protected void RemoveVisualChild (System.Windows.Media.Visual child);

パラメーター

child
Visual

親ビジュアルから削除するビジュアル子オブジェクト。

次の例は、ビジュアルの子のカスタム ストレージ要件を定義する方法を示しています。 この例では、and メソッドを AddVisualChild 使用して、親ビジュアルと RemoveVisualChild child. ビジュアル ツリーを正しく列挙するために、この例ではメソッドとVisualChildrenCountプロパティのオーバーライドされた実装をGetVisualChild提供します。

注意

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

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

注釈

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

適用対象

製品 バージョン
.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

こちらもご覧ください