첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
유용한 소스 코드가 있으면 icodebroker@naver.com으로 보내주시면 감사합니다.
블로그 자료는 자유롭게 사용하세요.

728x90
반응형

■ Visual 클래스 : 속성 값을 갖는 자손 찾기

------------------------------------------------------------------------------------------------------------------------

using System.Windows;

using System.Windows.Media;

 

#region 속성 값을 갖는 자손 찾기 - FindDescendantWithPropertyValue(source, property, value)

 

/// <summary>

/// 속성 값을 갖는 자손 찾기

/// </summary>

/// <param name="source">소스 객체</param>

/// <param name="property">속성</param>

/// <param name="value"></param>

/// <returns>자손 객체</returns>

public Visual FindDescendantWithPropertyValue(Visual source, DependencyProperty property, object value)

{

    if(source == null)

    {

        return null;

    }

 

    if(source.GetValue(property) == null)

    {

        return null;

    }

 

    if(source.GetValue(property).Equals(value))

    {

        return source;

    }

 

    Visual target = null;

 

    if(source is FrameworkElement)

    {

        (source as FrameworkElement).ApplyTemplate();

    }

 

    for(int i = 0; i < VisualTreeHelper.GetChildrenCount(source); i++)

    {

        Visual child = VisualTreeHelper.GetChild(source, i) as Visual;

 

        target = FindDescendantWithPropertyValue(child, property, value);

 

        if(target != null)

        {

            break;

        }

    }

 

    return target;

}

 

#endregion

------------------------------------------------------------------------------------------------------------------------

728x90
반응형
Posted by 사용자 icodebroker
TAG , ,

댓글을 달아 주세요