public override void Draw(SpriteBatch spriteBatch, Rectangle rectangle) { int yoffset = Margin + rectangle.Y; ChildElements?.Where(e => e.IsVisible).ToList().ForEach((e) => { var rect = e.Rectangle; Rectangle targetRect = new Rectangle(rectangle.X + Margin, yoffset, rectangle.Width - 2 * Margin, rect.Height); yoffset += (Margin + targetRect.Height); e.Rectangle = targetRect; }); Rectangle = new Rectangle(Rectangle.Location, new Point(Rectangle.Width, yoffset - rectangle.Y)); base.Draw(spriteBatch, Rectangle); }
protected string GetChildString(string name) { var child = ChildElements.Where(elem => elem.Name.ToString() == name).FirstOrDefault(); if (child == null) { return(null); } var charData = child.Children.FirstOrDefault() as ICharacterData; return(charData != null ? charData.Content : null); }
/// <summary> /// Retrieves a child element whose property name matches the specified property name. /// </summary> /// <param name="propertyName">The property name to match to the child element's property name.</param> /// <returns>The located child element or <see langword="null"/></returns> public ElementViewModel ChildElement(string propertyName) { return(ChildElements.Where(x => x.declaringProperty.Name == propertyName).FirstOrDefault()); }