public static T FindVisualChild <T>(this System.Windows.DependencyObject obj) where T : System.Windows.DependencyObject { for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++) { System.Windows.DependencyObject child = VisualTreeHelper.GetChild(obj, i); if (child != null && child is T) { return((T)((object)child)); } T t = child.FindVisualChild <T>(); if (t != null) { return(t); } } return(default(T)); }
private static ScrollViewer GeScrollViewer(DependencyObject obj) { if (obj == null) return null; var viewer = obj as ScrollViewer ?? obj.FindVisualChild<ScrollViewer>(); return viewer; }
private static bool IsCaretAtFront(DependencyObject d) { var t = d.FindVisualChild<TextBox>(); return t?.SelectionStart == 0 && t.SelectionLength == 0; }