internal void Initialize(Control control) { if (control == null || Setters.Count > 0) return; foreach (var setter in xmlNode.ChildNodes.OfType<XmlNode>().Where(x => x.LocalName == "Setter")) { var propertyName = setter.Attributes["Property"]; if (propertyName != null && !string.IsNullOrEmpty(propertyName.Value)) { var dp = control.GetDependencyProperty(propertyName.Value); if (dp == null) continue; var valueAttr = setter.Attributes["Value"]; if (valueAttr == null || string.IsNullOrEmpty(valueAttr.Value)) continue; var value = LoadValue(valueAttr.Value, dp.PropType); Setters.Add(dp, value); } } }
public void AddChild(Control child) { Child = child; }
public ContentControl(Control child) { Child = child; }
internal virtual void InvalidateLayout(Control source) { Size = null; Location = null; if (this != source) return; // Now let's invalidate the entire branch of this tree so we can properly recalculate/redraw var ctrl = Parent; while (ctrl != null) { ctrl.InvalidateLayout(this); ctrl = ctrl.Parent; } }
public void AddControl(Control control) { controls.Add(control); }
internal void Apply(Control control) { foreach (var key in Setters.Keys) TargetType.GetProperty(key.Name).SetValue(control, Setters[key], null); }
internal override void InvalidateLayout(Control source) { base.InvalidateLayout(source); Child.InvalidateLayout(source); }
public void AddChild(Control child) { Child = child; child.Parent = this; }
public ContentControl(Control child) { AddChild(child); }