private void PasteNote(object obj) { Notebook notebook = obj as Notebook; if (notebook != null) { DataFormat format = DataFormats.GetDataFormat(typeof(NoteClipboardData).FullName); if (!Clipboard.ContainsData(format.Name)) { return; } NoteClipboardData data = Clipboard.GetData(format.Name) as NoteClipboardData; if (data != null) { int index = Hub.Instance.Storage.GetNoteCount(notebook); Note note = ViewModelLocator.Instance.NoteMenu.CreateNewNote(data.Name, notebook, false, index, data.Text); if (data.Files != null && data.Files.Any()) { foreach (ClipboardFile file in data.Files) { NoteFile nf = NoteFile.Create(file.Name, file.MimeType, file.Data, note); note.Text = note.Text.Replace(file.FileName, nf.FileName); } note.Save(); } } } }
private static void DoCopyNote(Note note) { NoteClipboardData data = new NoteClipboardData { Name = note.Name, Text = note.DecryptedText, Tags = new List <string>(note.Tags) }; if (note.Files.Any()) { data.Files = new List <ClipboardFile>(); foreach (NoteFile noteFile in note.Files) { ClipboardFile file = new ClipboardFile { Name = noteFile.Name, Data = File.ReadAllBytes(noteFile.FullName), FileName = noteFile.FileName, MimeType = MimeTypeMap.GetMimeType(Path.GetExtension(noteFile.FileName)) }; data.Files.Add(file); } } DataFormat format = DataFormats.GetDataFormat(typeof(NoteClipboardData).FullName); IDataObject dataObj = new DataObject(); dataObj.SetData(format.Name, data, false); Clipboard.SetDataObject(dataObj, false); }