public void ListItemDrop_Handler(object sender, DragEventArgs args) { CV3DElement droppedData = args.Data.GetData(typeof(CV3DElement)) as CV3DElement; CV3DElement target = ((ListBoxItem)(sender)).DataContext as CV3DElement; int removedIndex = objects_MainWindow.Items.IndexOf(droppedData); int targetIndex = objects_MainWindow.Items.IndexOf(target); if (removedIndex < targetIndex) { modelList.Insert(targetIndex + 1, droppedData); modelList.RemoveAt(removedIndex); } else { int remIndex = removedIndex + 1; if (modelList.Count + 1 > remIndex) { modelList.Insert(targetIndex, droppedData); modelList.RemoveAt(remIndex); } } objects_MainWindow.Items.Refresh(); }
public void ObjectCurrentPosition_Handler(object sender, RoutedEventArgs args) { try { if (!(objects_MainWindow.SelectedItem is null)) { CV3DElement element = objects_MainWindow.SelectedItem as CV3DElement; /*ModelVisual3D model = element.Object; * Matrix3D temp = (model.Content as Model3D).Transform.Value; * temp.OffsetX = objectPosition_MainWindow.Value.X; * temp.OffsetY = objectPosition_MainWindow.Value.Y; * temp.OffsetZ = objectPosition_MainWindow.Value.Z;*/ if (element.Object is CubeVisual3D) { (element.Object as CubeVisual3D).Center = objectPosition_MainWindow.Value; } else if (element.Object is EllipsoidVisual3D) { (element.Object as EllipsoidVisual3D).Center = objectPosition_MainWindow.Value; } //(model.Content as Model3D).Transform = new MatrixTransform3D(temp); } } catch (Exception e) { Console.WriteLine(e.Message); Console.WriteLine(e.Source); } }