VisualCollection.Add(Visual) 方法

定义

Visual 追加到 VisualCollection 的末尾。

public:
 int Add(System::Windows::Media::Visual ^ visual);
public int Add (System.Windows.Media.Visual visual);
member this.Add : System.Windows.Media.Visual -> int
Public Function Add (visual As Visual) As Integer

参数

visual
Visual

要追加到 VisualCollectionVisual

返回

在集合中添加 visual 的位置的索引。

例外

如果 ArgumentException 为根元素,则将引发 Visual

示例

以下示例演示如何创建 VisualCollection 并向其添加成员。

// Create a host visual derived from the FrameworkElement class.
// This class provides layout, event handling, and container support for
// the child visual objects.
public class MyVisualHost : FrameworkElement
{
    // Create a collection of child visual objects.
    private VisualCollection _children;

    public MyVisualHost()
    {
        _children = new VisualCollection(this);
        _children.Add(CreateDrawingVisualRectangle());
        _children.Add(CreateDrawingVisualText());
        _children.Add(CreateDrawingVisualEllipses());

        // Add the event handler for MouseLeftButtonUp.
        this.MouseLeftButtonUp += new System.Windows.Input.MouseButtonEventHandler(MyVisualHost_MouseLeftButtonUp);
    }
' Create a host visual derived from the FrameworkElement class.
' This class provides layout, event handling, and container support for
' the child visual objects.
Public Class MyVisualHost
    Inherits FrameworkElement
    ' Create a collection of child visual objects.
    Private _children As VisualCollection

    Public Sub New()
        _children = New VisualCollection(Me)
        _children.Add(CreateDrawingVisualRectangle())
        _children.Add(CreateDrawingVisualText())
        _children.Add(CreateDrawingVisualEllipses())

        ' Add the event handler for MouseLeftButtonUp.
        AddHandler MouseLeftButtonUp, AddressOf MyVisualHost_MouseLeftButtonUp
    End Sub

注意

有关完整示例,请参阅 使用 DrawingVisuals 进行命中测试示例

注解

Visual添加允许其值的 null ,并且不会引发异常。

方法 Add 还设置父视觉对象(即 的 VisualCollection所有者)与子 之间的父-子 visual关系。

如果需要对自定义类的可视子对象的基础存储实现进行更高的低级别控制,请考虑使用 AddVisualChildRemoveVisualChild 方法。 使用这些方法时,必须定义自己的存储实现,并且不要使用 VisualCollection

适用于