Exemplo n.º 1
0
 public FileObj(FS.VirtualFile file, FileExplorer explorer)
 {
     SetupBrush();
     this.file        = file;
     this.explorer    = explorer;
     this.Displayname = file.FileDisplayName;
 }
Exemplo n.º 2
0
        private void CanvasDrop(object sender, DragEventArgs e)
        {
            if (e.Handled == false)
            {
                Canvas       canvas       = (Canvas)sender;
                ImageSource  imgsource    = e.Data.GetData(typeof(ImageSource)) as ImageSource;
                BitmapSource bitmapSource = (BitmapSource)imgsource;

                Point          mousePos = Mouse.GetPosition(null);
                FS.VirtualFile file     = e.Data.GetData(typeof(FS.VirtualFile)) as FS.VirtualFile;

                if (canvas != null)
                {
                    if (imgsource != null)
                    {
                        if (e.AllowedEffects.HasFlag(DragDropEffects.Copy))
                        {
                            Image img      = new Image();
                            var   position = e.GetPosition(canvas);
                            var   offset   = position - mousePos;
                            img.Source = imgsource;

                            img.Width  = bitmapSource.PixelWidth;
                            img.Height = bitmapSource.PixelHeight;

                            Entity canvasImage = new Entity(imgsource.ToString(), "Image" + entitiesController.CountCanvasEntities())
                            {
                                originalImage = img,
                                entity_id     = entitiesController.generator.NewID()
                            };
                            canvasImage.originalImage.Name = "_" + canvasImage.entity_id.ToString();
                            img.Source = imgsource;

                            canvasImage.canvas_image_data.position.x = offset.X - imgsource.Width / 2;
                            canvasImage.canvas_image_data.position.y = offset.Y - imgsource.Height / 2;

                            canvasImage.canvas_image_data.source_hashcode = img.Source.GetHashCode();
                            canvasImage.canvas_image_data.image_id        = canvasImage.originalImage.Name;

                            canvasImage.Name = "Image" + canvasImage.entity_id.ToString();

                            SpriteComponentControl spriteComponent = new SpriteComponentControl(canvasImage);
                            spriteComponent.ChangeSpriteName(file.FileDisplayName);
                            canvasImage.AddComponent(spriteComponent);

                            entitiesController.AddCanvasEntity(canvasImage.Name, canvasImage);

                            Canvas.SetLeft(img, offset.X - imgsource.Width / 2);
                            Canvas.SetTop(img, offset.Y - imgsource.Height / 2);
                            canvasImage.Transform.x = (int)(offset.X - imgsource.Width / 2);
                            canvasImage.Transform.y = (int)(offset.Y - imgsource.Height / 2);

                            ((Canvas)sender).Children.Add(img);

                            canvasController.InitializeCanvasSizeIfNecessary(canvasController.GetCanvas());

                            // set the value to return to the DoDragDrop call
                            e.Effects = DragDropEffects.Copy;
                            AddEntityToList(canvasImage);
                        }
                    }
                }
            }
        }