private static Type GetTargetType(XamlTypeConverter converter) { XamlElement p = converter.parser.CurrentElement.Parent; XamlObjectElement parent = p as XamlObjectElement; if (p == null) { throw new XamlParseException("Attempting to create a DP from an item without a target property."); } if (parent == null) { parent = p.Parent as XamlObjectElement; } if (parent == null) { throw new XamlParseException("Attempting to create a DP from an item without a target property."); } Style s = parent.Object as Style; if (s == null) { throw new XamlParseException("Attempting to create a DP from a non style object."); } return(s.TargetType); }
public override void AddChild(XamlElement child) { XamlPropertyElement prop = child as XamlPropertyElement; if (prop != null) { AddChildProperty(prop); return; } AddChildObject((XamlObjectElement)child); }
public override void AddChild(XamlElement child) { if (!set_on_add) { return; } XamlObjectElement element = child as XamlObjectElement; if (element == null) { return; } Setter.SetValue(element, element.Object); }
public override void AddChild (XamlElement child) { XamlPropertyElement prop = child as XamlPropertyElement; if (prop != null) { AddChildProperty (prop); return; } AddChildObject ((XamlObjectElement) child); }
private IDictionary CurrentDictionary (XamlElement element) { IDictionary rd = null; XamlObjectElement obj = null; if (element == null || element.Parent == null) return null; XamlPropertyElement prop = element.Parent as XamlPropertyElement; if (prop == null) { // // We could be in a <ResourceDictionary> tag, so we get added via ContentProperty // obj = element.Parent as XamlObjectElement; rd = obj.Object as IDictionary; if (rd != null) return rd; return null; } // // We aren't even in a <Something.Resources> element // if (!(typeof (IDictionary).IsAssignableFrom (prop.Type))) return null; // // We need to be in a resource dictionary element, and we need that element to have a // valid parent container. // obj = prop.Parent as XamlObjectElement; if (obj == null) return null; FrameworkElement fe = obj.Object as FrameworkElement; rd = fe.Resources; return rd; }
private void ParentPropertyElement (XamlElement element, XamlPropertyElement prop) { XamlObjectElement obj = (XamlObjectElement) element; }
public abstract void AddChild(XamlElement child);
private void PushCurrentElement (XamlElement element) { if (element == null) { current_element = null; return; } if (current_element != null) { current_element.Children.Add (element); element.Parent = current_element; } if (top_element == null) top_element = element; current_element = element; }
private void InitTopElement (XamlElement element) { XamlObjectElement obj = element as XamlObjectElement; if (obj != null && typeof (DependencyObject).IsAssignableFrom (obj.Type)) { DependencyObject dob = (DependencyObject) obj.Object; NameScope.SetNameScope (dob, NameScope); } }
private void PopCurrentElement () { Log ("\t\tPopCurrentElement old:{0} new:{1}", current_element != null ? current_element.Name : "none", current_element.Parent != null ? current_element.Parent.Name : "none"); current_element = current_element.Parent; }
private void ParseXmlDirective (XamlElement element) { if (reader.LocalName == "space") { // Do nothing XmlReader covers this for us } }
private void OnElementBegin (XamlElement element) { Log ("\t\tOnElementBegin {0}", element.Name); InitializeElement (element); element.RaiseElementBegin (); if (top_element == null) InitTopElement (element); if (current_element is XamlObjectElement) { if (element is XamlObjectElement) current_element.ContentSet = true; else current_element.PropertiesSet = true; } PushCurrentElement (element); }
private void PushCurrentElement (XamlElement element) { Log ("\t\tPushCurrentElement old:{0} new:{1}", CurrentElement != null ? CurrentElement.Name : "none", element != null ? element.Name : "none"); if (element == null) { current_element = null; return; } if (current_element != null) { current_element.Children.Add (element); element.Parent = current_element; } if (top_element == null) top_element = element; current_element = element; }
private void ParseXmlDirective (XamlElement element, XamlAttribute ai) { if (ai.LocalName == "space") { // Do nothing XmlReader covers this for us } }
private IDictionary CurrentDictionary (XamlElement element) { XamlObjectElement obj = null; if (element == null || element.Parent == null) return null; XamlElement walk = element.Parent; XamlPropertyElement prop = null; while (walk != null) { prop = walk as XamlPropertyElement; if (prop == null) { obj = walk as XamlObjectElement; IDictionary rd = obj.Object as IDictionary; if (rd != null) return rd; walk = walk.Parent; continue; } // // We are in a different property // if (!(typeof (IDictionary).IsAssignableFrom (prop.Type))) { walk = walk.Parent; continue; } break; } if (prop == null) return null; obj = prop.Parent as XamlObjectElement; if (obj == null) return null; FrameworkElement fe = obj.Object as FrameworkElement; if (fe != null) return fe.Resources; Application app = obj.Object as Application; if (app != null) return app.Resources; return null; }
internal object LookupNamedItem (XamlElement target, string name) { object o; XamlElement lookup = target; while (lookup != null) { XamlObjectElement obj = lookup as XamlObjectElement; if (obj != null) { FrameworkElement fe = obj.Object as FrameworkElement; if (fe != null) { o = fe.Resources [name]; if (o != null) return o; } ResourceDictionary rd = obj.Object as ResourceDictionary; if (rd != null) { o = rd [name]; if (o != null) return o; } } lookup = lookup.Parent; } o = Context.LookupNamedItem (name); if (o != null) return o; o = Application.Current.Resources [name]; return o; }
private void ParseMcAttribute (XamlElement element) { if (reader.LocalName == "Ignorable") { IgnorableXmlns.Add (reader.Value); return; } throw ParseException ("Undeclared prefix"); }
private void InitTopElement (XamlElement element) { XamlObjectElement obj = element as XamlObjectElement; if (obj != null) { if (typeof (DependencyObject).IsAssignableFrom (obj.Type)) { object target = obj.Object; if (target is MutableObject) target = ((MutableObject)target).Object; DependencyObject dob = (DependencyObject) target; NameScope.SetNameScope (dob, NameScope); } } }
private void ParseXmlnsMapping (XamlElement element) { if (reader.Prefix == String.Empty) { DefaultXmlns = reader.Value; return; } Xmlns [reader.Name] = reader.Value; }
private void ParentElement (XamlElement element, XamlElement parent) { Log ("AddChild: {0} {1}", parent.Name, element.Name); parent.AddChild (element); }
private void OnElementBegin (XamlElement element) { InitializeElement (element); element.RaiseElementBegin (); if (top_element == null) InitTopElement (element); PushCurrentElement (element); }
private void EndInitializeElement (XamlElement element) { XamlObjectElement obj = element as XamlObjectElement; if (obj == null) return; ISupportInitialize init = obj.Object as ISupportInitialize; if (init == null) return; try { init.EndInit (); } catch (Exception e) { Console.WriteLine ("Exception in initializer."); Console.WriteLine (e); } }
private void PopCurrentElement () { current_element = current_element.Parent; }
internal void RegisterKeyItem (XamlObjectElement element, XamlElement target, string key) { IDictionary rd = CurrentDictionary (element); if (rd == null) throw ParseException ("Attempt to use x:Key outside of an IDictionary."); element.X_Key = key; }
private void ParentElement (XamlElement element, XamlElement parent) { parent.AddChild (element); }
public abstract void AddChild (XamlElement child);
private void EndInitializeElement (XamlElement element) { XamlObjectElement obj = element as XamlObjectElement; if (obj == null) return; ISupportInitialize init = obj.Object as ISupportInitialize; if (init == null) return; init.EndInit (); }
private void ParseMcAttribute (XamlElement element) { if (reader.LocalName == "Ignorable") // we've already ignored namespaces in IgnoreIgnorableXmlns return; throw ParseException ("Undeclared prefix"); }
internal FrameworkTemplate GetParentTemplate (XamlElement element) { XamlElement parent = element.Parent; while (parent != null && !IsTemplate (parent)) parent = parent.Parent; if (parent != null) return ((XamlObjectElement) parent).Object as FrameworkTemplate; if (Context == null) return null; return Context.Template; }
public override void AddChild (XamlElement child) { if (!set_on_add) return; XamlObjectElement element = child as XamlObjectElement; if (element == null) return; Setter.SetValue (element, element.Object); }
private bool IsTemplate (XamlElement element) { XamlObjectElement obj = element as XamlObjectElement; if (obj == null) return false; return typeof (FrameworkTemplate).IsAssignableFrom (obj.Type); }
public override void AddChild (XamlElement child) { }