//посмотреть мб изменить 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 }