내가 알고있는 상자 방법은 없습니다. 당신은 VisualTreeHelper
를 사용하여 VisualTree을 찾아 그들이 당신이 interrested하는 속성을 가지고 있는지 확인해야 다음
는 당신이 필요로 할 수있는 방법이다.
public static IEnumerable<FrameworkElement> FindVisualChildren(FrameworkElement obj, Func<FrameworkElement, bool> predicate)
{
if (obj != null)
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
{
var objChild = VisualTreeHelper.GetChild(obj, i);
if (objChild != null && predicate(objChild as FrameworkElement))
{
yield return objChild as FrameworkElement;
}
foreach (FrameworkElement childOfChild in FindVisualChildren(objChild as FrameworkElement, predicate))
{
yield return childOfChild;
}
}
}
}
사용법에 대한 그런 일이 될 수 수표 만 :
var children = FindVisualChildren((FrameworkElement)sender, o => !string.IsNullOrEmpty(o.Name));