summaryrefslogtreecommitdiff
path: root/Gestor.Common/Gestor.Common.Helpers/FindVisualChild.cs
blob: f47fea1d1e265fe2a03ef0b48f828ec7e51d214e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
using System.Windows;
using System.Windows.Media;

namespace Gestor.Common.Helpers;

public class FindVisualChild
{
	public static childItem Find<childItem>(DependencyObject obj) where childItem : DependencyObject
	{
		for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
		{
			DependencyObject child = VisualTreeHelper.GetChild(obj, i);
			if (child != null && child is childItem)
			{
				return (childItem)(object)child;
			}
			childItem val = Find<childItem>(child);
			if (val != null)
			{
				return val;
			}
		}
		return default(childItem);
	}
}