ContainerVisual.VisualChildrenCount 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取 ContainerVisual 的子对象的数量。
protected:
property int VisualChildrenCount { int get(); };
protected override sealed int VisualChildrenCount { get; }
member this.VisualChildrenCount : int
Protected Overrides NotOverridable ReadOnly Property VisualChildrenCount As Integer
属性值
ContainerVisual 的 VisualCollection 中的子对象的数量。
示例
下面的示例演示如何创建一个用作两DrawingVisual个 ContainerVisual 对象的父对象的 对象。 ContainerVisual添加到对象的对象必须以反向 z 顺序添加 (从下到上) ,以确保它们以正确的绘制顺序呈现。 为了正确枚举可视化树,该示例提供了 方法和 VisualChildrenCount 属性的GetVisualChild重写实现。
// 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 MyContainerVisualHost : FrameworkElement
{
private ContainerVisual _containerVisual;
public MyContainerVisualHost(DrawingVisual border, DrawingVisual text)
{
// Create a ContainerVisual to hold DrawingVisual children.
_containerVisual = new ContainerVisual();
// Add children to ContainerVisual in reverse z-order (bottom to top).
_containerVisual.Children.Add(border);
_containerVisual.Children.Add(text);
// Create parent-child relationship with host visual and ContainerVisual.
this.AddVisualChild(_containerVisual);
}
// Provide a required override for the VisualChildrenCount property.
protected override int VisualChildrenCount
{
get { return _containerVisual == null ? 0 : 1; }
}
// Provide a required override for the GetVisualChild method.
protected override Visual GetVisualChild(int index)
{
if (_containerVisual == null)
{
throw new ArgumentOutOfRangeException();
}
return _containerVisual;
}
}
' 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 MyContainerVisualHost
Inherits FrameworkElement
Private _containerVisual As ContainerVisual
Public Sub New(ByVal border As DrawingVisual, ByVal text As DrawingVisual)
' Create a ContainerVisual to hold DrawingVisual children.
_containerVisual = New ContainerVisual()
' Add children to ContainerVisual in reverse z-order (bottom to top).
_containerVisual.Children.Add(border)
_containerVisual.Children.Add(text)
' Create parent-child relationship with host visual and ContainerVisual.
Me.AddVisualChild(_containerVisual)
End Sub
' Provide a required override for the VisualChildrenCount property.
Protected Overrides ReadOnly Property VisualChildrenCount() As Integer
Get
Return If(_containerVisual 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 _containerVisual Is Nothing Then
Throw New ArgumentOutOfRangeException()
End If
Return _containerVisual
End Function
End Class
注解
默认情况下, ContainerVisual 没有任何子级。
继承者说明
派生自 ContainerVisual 的类必须实现 VisualChildrenCount 属性才能枚举可视子级。 派生属性必须返回 的 ContainerVisual子级数。
在此调用期间,无法修改可视化树。