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.
static public 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)

取得測量及轉譯此 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)

更新 Visual 的 DPI 的資訊。 它只能在不具父代的 Visual 上呼叫。

適用於