Example #1
0
        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);
        }
Example #2
0
        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);
                    }
                }
            }
        }