public BamlControl Find(FrameworkElement element) { string name = element.Name; if (name == "") { name = element.Uid; } BamlControl result = Find(name); if (result != null) { return(result); } // Check if element is in Children result = FindMemberName("Children"); if (result != null) { result = result.Find(name); } if (result != null) { return(result); } // Check if element is in Items result = FindMemberName("Items"); if (result != null) { result = result.Find(name); } return(result); }
private void TranslateElement(FrameworkElement element, BamlControl baml) { if ((element == null) || (baml == null)) { return; } // Translate child controls IEnumerable children = LogicalTreeHelper.GetChildren(element); foreach (object child in children) { if (child is FrameworkElement) { FrameworkElement childElement = (FrameworkElement)child; TranslateElement(childElement, baml.Find(childElement)); } } // Translate this control if ((TranslateElementEvent == null) || TranslateElementEvent(this, element)) { PropertyInfo[] properties = element.GetType().GetProperties(); foreach (PropertyInfo property in properties) { Object value; if (property.Name == "Content") { value = baml.Value; } else { value = baml.FindProperty(property.Name); } if ((value != null) && property.CanWrite && (value is string)) { //property.SetValue(element, ((string)value).ToUpper(), null); property.SetValue(element, value, null); } } } }