public static object FindResource(this FrameworkElement element, string key) { while (element != null) { object value = element.Resources[key]; if (value != null) { return value; } element = element.GetParentVisual(); } return null; }