[펌글] VisualTreeHelper 클래스 본문

[PL]/C# & WPF

[펌글] VisualTreeHelper 클래스

객과 함께. 2010. 6. 16. 21:53

시각적 트리의 노드와 관련된 일반적인 작업을 수행하는 유틸리티 메서드를 제공합니다

 

설명

--------------------------------------------------------------------------------
표시 트리의 노드는 Visual 또는 Visual3D 개체일 수 있습니다.표시 개체 형식별 메서드는 Visual 또는 Visual3D로 형식화됩니다.그러나 VisualTreeHelper 클래스의 일부 메서드는 표시 개체 형식 중 하나를 나타내는 DependencyObject 값을 받아들일 수 있습니다.

WPF에서는 개체의 여러 다양한 트리 구조에 프로그래밍 방식으로 액세스할 수 있습니다.WPF는 주로 표시 트리 및 논리 트리로 노출됩니다.WPF 응용 프로그램의 요소를 논리적 트리로 나타내는 것이 더 유용한 경우도 있지만, 개념적으로 논리적 트리는 Visual 클래스를 벗어난 수준에서 구현됩니다.시각적 트리와 달리 논리적 트리는 ListItem 등의 시각적이지 않은 데이터 개체를 나타낼 수 있습니다.논리 트리에 대한 자세한 내용은 WPF의 트리를 참조하십시오.비슷한 유틸리티 메서드 클래스인 LogicalTreeHelper에서도 논리 트리를 지원합니다.

예제
--------------------------------------------------------------------------------<br>

다음 예제에서는 표시 개체의 모든 하위 항목을 열거하는 방법을 보여 줍니다. 이는 표시 개체 계층 구조의 모든 렌더링 정보를 serialize하려는 경우 사용할 수 있는 기술입니다.

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

 

VB.NET

' 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

'[PL] > C# & WPF' 카테고리의 다른 글

ManagementPath.RelativePath 속성  (0) 2010.06.26
컨트롤 배열  (0) 2010.06.16
ListView Row Highlight  (0) 2010.06.04
텍스트 파일 읽기  (0) 2010.05.07
[C# - 영상처리]흉내낸 얼굴 인식프로그램  (0) 2010.04.23