using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Media; namespace PDF_Office.Tools { public static class CommonHelper { /// /// 查找对象目标类型的父类控件 /// /// /// /// public static T FindVisualParent(DependencyObject obj) where T : class { try { while (obj != null) { if (obj is T) return obj as T; obj = VisualTreeHelper.GetParent(obj); } return null; } catch { return null; } } /// /// 根据对象查找目标类型的子类 /// /// /// /// public static childItem FindVisualChild(DependencyObject obj) where childItem : DependencyObject { try { for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++) { DependencyObject child = VisualTreeHelper.GetChild(obj, i); if (child != null && child is childItem) return (childItem)child; else { childItem childOfChild = FindVisualChild(child); if (childOfChild != null) return childOfChild; } } return null; } catch { return null; } } } }