VisualTreeHelper 类

定义

提供一些实用工具方法,用于执行涉及可视化树中的节点的常规任务。

public ref class VisualTreeHelper abstract sealed
public static class VisualTreeHelper
type VisualTreeHelper = class
Public Class VisualTreeHelper
继承
VisualTreeHelper

示例

下面的示例演示如何枚举视觉对象的所有后代,如果你对序列化可视化对象层次结构的所有呈现信息感兴趣,则可能希望使用该技术。

// Enumerate all the descendants of the visual object.
public static void EnumVisual(Visual myVisual)
{
    for (int i = 0; i < VisualTreeHelper.GetChildrenCount(myVisual); i++)
    {
        // Retrieve child visual at specified index value.
        Visual childVisual = (Visual)VisualTreeHelper.GetChild(myVisual, i);

        // Do processing of the child visual object.

        // Enumerate children of the child visual object.
        EnumVisual(childVisual);
    }
}
' Enumerate all the descendants of the visual object.
Public Shared Sub EnumVisual(ByVal myVisual As Visual)
    For i As Integer = 0 To VisualTreeHelper.GetChildrenCount(myVisual) - 1
        ' Retrieve child visual at specified index value.
        Dim childVisual As Visual = CType(VisualTreeHelper.GetChild(myVisual, i), Visual)

        ' Do processing of the child visual object.

        ' Enumerate children of the child visual object.
        EnumVisual(childVisual)
    Next i
End Sub

注解

可视化树中的节点可以是 VisualVisual3D 对象。 特定于视觉对象类型的方法类型化为 VisualVisual3D。 但是,类中的 VisualTreeHelper 某些方法可以接受表示任一 DependencyObject 类型的视觉对象的值。

WPF 支持以编程方式访问对象的多个不同树结构。 这主要是作为可视化树和逻辑树公开的。 在某些情况下,逻辑树是 WPF 应用程序中元素的更有用的表示形式,但从概念上讲,逻辑树是在 类之外的级别实现的 Visual 。 与可视化树不同,逻辑树可以表示非可视数据对象,例如 ListItem。 有关逻辑树的详细信息,请参阅 WPF 中的树。 类似的实用工具方法类 LogicalTreeHelper也支持逻辑树。

方法

GetBitmapEffect(Visual)

返回指定 BitmapEffectVisual 值。

GetBitmapEffectInput(Visual)

返回指定 BitmapEffectInputVisual 值。

GetCacheMode(Visual)

检索指定的 Visual 的缓存表示形式。

GetChild(DependencyObject, Int32)

返回指定父可视对象中位于指定集合索引位置的子可视对象。

GetChildrenCount(DependencyObject)

返回指定可视对象包含的子级个数。

GetClip(Visual)

将指定的 Visual 的剪辑区域作为 Geometry 值返回。

GetContentBounds(Visual)

返回指定 Visual 的已缓存的边界框矩形。

GetContentBounds(Visual3D)

返回指定 Visual3D 的已缓存的边界框矩形。

GetDescendantBounds(Visual)

返回 Visual 所有子代的所有内容边界框的联合,其中包括 Visual 的内容边界框。

GetDescendantBounds(Visual3D)

返回指定 Visual3D 所有子代的所有内容边界框的联合,其中包括 Visual3D 的内容边界框。

GetDpi(Visual)

获取测量和呈现此视觉对象的 DPI 信息。

GetDrawing(Visual)

返回指定的 Visual 的绘图内容。

GetEdgeMode(Visual)

将指定的 Visual 的边缘模式作为 EdgeMode 值返回。

GetEffect(Visual)

获取指定 Visual 的位图效果。

GetOffset(Visual)

返回 Visual 的偏移量。

GetOpacity(Visual)

返回 Visual 的不透明度。

GetOpacityMask(Visual)

返回一个 Brush 值,该值表示 Visual 的不透明蒙板。

GetParent(DependencyObject)

返回表示视觉对象的父对象的 DependencyObject 值。

GetTransform(Visual)

返回 TransformVisual 值。

GetXSnappingGuidelines(Visual)

返回 X 坐标(垂直)准线集合。

GetYSnappingGuidelines(Visual)

返回 Y 坐标(水平)准线集合。

HitTest(Visual, HitTestFilterCallback, HitTestResultCallback, HitTestParameters)

使用调用方定义的 HitTestFilterCallbackHitTestResultCallback 方法对指定 Visual 启动命中测试。

HitTest(Visual, Point)

通过指定 Point 返回命中测试的最顶层 Visual 对象。

HitTest(Visual3D, HitTestFilterCallback, HitTestResultCallback, HitTestParameters3D)

使用调用方定义的 HitTestFilterCallbackHitTestResultCallback 方法对指定 Visual3D 启动命中测试。

SetRootDpi(Visual, DpiScale)

更新视觉对象的 DPI 信息。 它仅能在没有父级的视觉对象上调用。

适用于