public static ClipboardData GetSystem() { var dataObj = Clipboard.GetDataObject(); if (dataObj.GetData(typeof(NELocalClipboard)) as int? == PID) return null; var data = new ClipboardData(); data.Text = dataObj.GetData(DataFormats.UnicodeText) as string ?? dataObj.GetData(DataFormats.OemText) as string ?? dataObj.GetData(DataFormats.Text) as string ?? dataObj.GetData(typeof(string)) as string; data.Strings = new List<string>(); if (data.Text == null) data.Text = ""; else data.Strings.Add(data.Text); data.Image = dataObj.GetData(DataFormats.Bitmap, true) as BitmapSource; var dropList = (dataObj.GetData(DataFormats.FileDrop) as string[])?.OrderBy(Helpers.SmartComparer(false)).ToList(); if ((dropList != null) && (dropList.Count != 0)) { data.Strings = dropList; var dropEffectStream = dataObj.GetData("Preferred DropEffect"); if (dropEffectStream is MemoryStream) { try { var dropEffect = (DragDropEffects)BitConverter.ToInt32(((MemoryStream)dropEffectStream).ToArray(), 0); data.IsCut = dropEffect.HasFlag(DragDropEffects.Move); } catch { } } } return data; }
public static ClipboardData CreateObjects(IEnumerable<object> objects, string text = null) { var data = new ClipboardData(); data.Objects = objects.ToList(); data.Strings = data.Objects.Select(obj => (obj ?? "<NULL>").ToString()).ToList(); data.Text = text ?? string.Join(" ", data.Strings); return data; }
public static ClipboardData CreateStrings(IEnumerable<string> strings) { var data = new ClipboardData(); data.Strings = strings.ToList(); data.Text = string.Join("\r\n", data.Strings.Select(str => str ?? "<NULL>")); data.Objects = data.Strings.Cast<object>().ToList(); return data; }
public static ClipboardData CreateText(string text) { var data = new ClipboardData(); data.Text = text ?? "<NULL>"; data.Strings = new List<string> { data.Text }; data.Objects = data.Strings.Cast<object>().ToList(); return data; }
public static ClipboardData CreateFiles(IEnumerable<string> fileNames, bool isCut) { var data = new ClipboardData(); data.Strings = fileNames.ToList(); data.Text = string.Join(" ", data.Strings.Select(file => string.Format(@"""{0}""", file))); data.Objects = data.Strings.Cast<object>().ToList(); data.IsCut = isCut; return data; }
static void Save(NELocalClipboard control, ClipboardData data, bool global = true, bool setClipboard = true) { systemClipboard = data; var controls = global ? clipboards.AsEnumerable() : new List<NELocalClipboard> { control }; controls.NonNull().ForEach(clipboard => { clipboard.localClipboard = data; clipboard.clipboardChanged?.Invoke(); }); if (setClipboard) data.SetSystem(); }
public static ClipboardData CreateImage(BitmapSource image) { var data = new ClipboardData(); data.Image = image; return data; }
public NELocalClipboard() { localClipboard = systemClipboard ?? new ClipboardData(); clipboards.Add(this); }