/// <summary> /// Загрузка изображения. /// </summary> /// <param name="sign">Идентификатор сущности.</param> public void LoadImage(EntitySign sign) { using (var ec = new EntityController()) { var parentLocation = ec.GetParentLocation(sign); if (parentLocation.GetSign() == ((EntitySign)Tag))// В теге хранится текущий идентификатор помещения на плане. { return; } Tag = parentLocation.GetSign(); var byteImage = parentLocation.Plan; Controls.Clear(); this.SuspendDrawing(); if (byteImage == null) { Image = null; } else { Image = Image.FromStream(new MemoryStream(byteImage)); ResizeRelativePosition(); var drawEquipment = ec.GetDrawEquipment(parentLocation); var sizeIcons = GetSizeIcons(); foreach (var eq in drawEquipment) { new IconOnPlan(this, eq.GetSign(), sizeIcons, eq.Point, IconsGetter.GetIconImage(eq.GetType()), eq.ToString()); } } this.ResumeDrawing(); } }
/// <summary> /// Добавить новую иконку на план при перетаскивании. /// </summary> /// <param name="e"></param> /// <param name="sign">Идентификатор сущности.</param> /// <returns></returns> private IconOnPlan AddNewIcon(DragEventArgs e, EntitySign sign) { IconOnPlan icon; string textIcon; using (var ec = new EntityController()) { var entity = ec.GetEntity(sign) as Equipment; textIcon = entity.ToString(); } this.SuspendDrawing(); icon = new IconOnPlan(this, sign, GetSizeIcons(), new ScalePoint(new Point(e.X, e.Y), this), IconsGetter.GetIconImage(sign.Type), textIcon); this.ResumeDrawing(); return(icon); }