Find Control With Tag using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Media; static class common { public static T FindControlWithTag(this DependencyObject parent, string tag) where T : UIElement { List elements = new List(); int count = VisualTreeHelper.GetChildrenCount(parent); if (count > 0) { for (int j = 0; j < count; j++) { DependencyObject child = VisualTreeHelper.GetChild(parent, j); if (typeof(FrameworkElement).IsAssignableFrom(child.GetType()) && ((string)((FrameworkElement)child).Tag == tag)) { return child as T; } var item = FindControlWithTag(child, tag); if (item != null) return item as T; } } return null; } }