27 lines
680 B
C#
27 lines
680 B
C#
|
using System.Windows;
|
|||
|
using System.Windows.Media;
|
|||
|
|
|||
|
namespace Filtration.Common.Utilities
|
|||
|
{
|
|||
|
public class VisualTreeUtility
|
|||
|
{
|
|||
|
public static T FindParent<T>(DependencyObject child)
|
|||
|
where T : DependencyObject
|
|||
|
{
|
|||
|
//get parent item
|
|||
|
var parentObject = VisualTreeHelper.GetParent(child);
|
|||
|
|
|||
|
//we've reached the end of the tree
|
|||
|
if (parentObject == null) return null;
|
|||
|
|
|||
|
//check if the parent matches the type we're looking for
|
|||
|
if (parentObject is T parent)
|
|||
|
{
|
|||
|
return parent;
|
|||
|
}
|
|||
|
|
|||
|
return FindParent<T>(parentObject);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|