Ejemplo n.º 1
0
        public override DragDropEffects DoDragDrop(UIElement source, Point cursorPos)
        {
            this.ThemeItem.Load();
            ImageResourceThemeItem resourceThemeItem = (ImageResourceThemeItem)this.ThemeItem;

            byte[]      numArray    = ((ResourceThemeItem)resourceThemeItem).Save(false);
            IDataObject dataObject1 = Advent.Common.Interop.DataObject.CreateDataObject();
            IDataObject dataObject2 = dataObject1;

            VirtualFile[] virtualFileArray = new VirtualFile[1];
            virtualFileArray[0] = new VirtualFile()
            {
                Name          = this.ThemeItem.Name,
                LastWriteTime = DateTime.Now,
                Contents      = numArray
            };
            VirtualFile[] files = virtualFileArray;
            DataObjectExtensions.SetVirtualFiles(dataObject2, files);
            try
            {
                VmcStudioUtil.DragDropObject = (object)this;
                return(DataObjectExtensions.DoDragDrop(dataObject1, source, UIExtensions.Resize(resourceThemeItem.Image, 100), cursorPos, DragDropEffects.Copy));
            }
            finally
            {
                VmcStudioUtil.DragDropObject = (object)null;
            }
        }
Ejemplo n.º 2
0
        public override DragDropEffects DoDragDrop(UIElement source, Point cursorPos)
        {
            Advent.Common.Interop.DataObject dataObject1 = new Advent.Common.Interop.DataObject();
            List <VirtualFile> list = new List <VirtualFile>();

            foreach (T obj in Enumerable.Where <T>(this.GetThemeItems(), (Func <T, bool>)(o => o.Visibility == Visibility.Visible)))
            {
                obj.ThemeItem.Load();
                VirtualFile virtualFile = new VirtualFile()
                {
                    Name          = obj.ThemeItem.Name,
                    LastWriteTime = DateTime.Now
                };
                if (obj.ThemeItem.IsDirty)
                {
                    virtualFile.Contents = ((ResourceThemeItem)obj.ThemeItem).Save(false);
                }
                else
                {
                    T copy = obj;
                    virtualFile.ContentsFunc = (Func <byte[]>)(() => ((ResourceThemeItem)copy.ThemeItem).OriginalBuffer);
                }
                list.Add(virtualFile);
            }
            DataObjectExtensions.SetVirtualFiles(dataObject1, list.ToArray());
            IDataObject dataObject2 = (IDataObject) new System.Windows.DataObject((object)dataObject1);

            try
            {
                VmcStudioUtil.DragDropObject = (object)list;
                return(DataObjectExtensions.DoDragDrop(dataObject2, source, cursorPos, DragDropEffects.Copy));
            }
            finally
            {
                VmcStudioUtil.DragDropObject = (object)list;
            }
        }