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; } }
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; } }