//посмотреть мб изменить
        public void AddBuildObject(BuildObject addBuildObject)
        {
            foreach (UIElement element in addBuildObject)
            {
                if (element.RenderTransform is TransformGroup)
                {
                    if (!(element.RenderTransform as TransformGroup).Children.Any(p => p == ScaleTransformForUIElement))
                    {
                        //костыль, для смещения изображений при увеличении или уменьшении объектов
                        if (element is Image)
                        {
                            Canvas.SetLeft(element, Canvas.GetLeft(element) * ScaleTransformForUIElement.ScaleX);
                            Canvas.SetTop(element, Canvas.GetTop(element) * ScaleTransformForUIElement.ScaleY);
                        }

                        (element.RenderTransform as TransformGroup).Children.Add(ScaleTransformForUIElement);
                    }
                }
                else
                {
                    element.RenderTransform = TransformGroupForUIElement;
                }
                Children.Add(element);
            }
        }
 public void RemoveBuildObject(BuildObject addBuildObject)
 {
     foreach (UIElement element in addBuildObject)
     {
         Children.Remove(element);
     }
 }
        private void myCanvasWork_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            //выделение нажатого элемента
            #region SelectElement
            if (listViewBuildObjects.SelectedItems.Count > 0)
            {
                foreach (BuildObject selectItem in listViewBuildObjects.Items)
                {
                    if (selectItem.IsSelect)
                    {
                        selectItem.IsSelect = false;
                    }
                }

                listViewBuildObjects.SelectedItems.Clear();
            }

            MyCanvas currentCanvas = sender as MyCanvas;
            Point    mousePosition = e.GetPosition(currentCanvas);
            if (currentCanvas.SelectTool == Tools.SelectObjects)
            {
                HitTestResult result = VisualTreeHelper.HitTest(currentCanvas, mousePosition);
                if (result.VisualHit is UIElement)
                {
                    BuildObject clickObject = Program.CurrentProject.ListBuildObject.FirstOrDefault(p => p.IsUIElementInBuildObject(result.VisualHit as UIElement));
                    if (clickObject != null)
                    {
                        clickObject.IsSelect = true;
                        listViewBuildObjects.SelectedItems.Add(clickObject);
                    }
                }
            }
            #endregion
        }