private async void WindowDrop(object sender, DragEventArgs e) { if (!_isDragDrop) { try { Win32.Point curPosition; Win32.GetCursorPos(out curPosition); var imageSources = await ImagePaster.GetImageFromIDataObject(e.Data); if (imageSources.Count <= 0) { return; } imageSources.ForEach(m => ImageItemsSource.Add(new Image { Source = m, })); } catch (Exception ex) { App.Log.Error(ex.ToString()); Extentions.ShowMessageBox("无效的粘贴!"); } } }
//private void CloseBtn_Click(object sender, RoutedEventArgs e) //{ // Close(); //} #endregion #region Private methods private async void PasteImagesFromClipboard() { if (!ImagePaster.CanPasteImageFromClipboard()) { return; } try { var imageSources = await ImagePaster.GetPasteImagesFromClipboard(); if (imageSources.Count <= 0) { return; } imageSources.ForEach(m => ImageItemsSource.Add(new Image { Source = m, })); } catch (Exception ex) { App.Log.Error(ex.ToString()); Extentions.ShowMessageBox("无效的粘贴!"); } }
private async void WindowDrop(object sender, DragEventArgs e) { try { Win32.GetCursorPos(out _curPosition); var imageSources = await ImagePaster.GetImageFromIDataObject(e.Data); if (imageSources.Count <= 0) { return; } _controlManager.SelectNone(); var translate = new Point(_curPosition.X - SystemParameters.VirtualScreenWidth / 2, _curPosition.Y - SystemParameters.VirtualScreenHeight / 2); var controls = new List <ImageControl>(imageSources.Count); controls.AddRange(imageSources.Select(imageSource => PackageImageToControl(new AnimatedGif { Source = imageSource, Stretch = Stretch.Fill }, translate))); _controlManager.AddElements(controls); } catch (Exception ex) { App.Log.Error(ex.ToString()); Extentions.ShowMessageBox("无效的粘贴!"); } }
public void PasteFromClipboard_WithEmptyClipboard() { string result = null; System.Threading.Thread t = new System.Threading.Thread(() => { var pManager = new PersistenceManager(); var tree = pManager.NewTree(); var editor = new NoteEditor(); var form = CreateForm(); form.Controls.Add(editor); var sut = new ImagePaster(editor, pManager); form.Shown += (sender, args) => { Clipboard.Clear(); ImagePaster.PasteFromClipboard(editor, tree); result = editor.HTML; form.Close(); }; form.ShowDialog(); }); t.SetApartmentState(System.Threading.ApartmentState.STA); t.Start(); t.Join(); Assert.IsNull(result); }
public void PasteFromClipboard() { string result = null; System.Threading.Thread t = new System.Threading.Thread(() => { var pManager = new PersistenceManager(); var tree = pManager.NewTree(); var editor = new NoteEditor(); var form = CreateForm(); form.Controls.Add(editor); var sut = new ImagePaster(editor, pManager); form.Shown += (sender, args) => { Clipboard.SetImage(Bitmap.FromFile(@"Resources\MapCtrl1.png")); ImagePaster.PasteFromClipboard(editor, tree); result = editor.HTML; form.Close(); }; form.ShowDialog(); }); t.SetApartmentState(System.Threading.ApartmentState.STA); t.Start(); t.Join(); Assert.IsTrue(result.ToLower().Contains("img")); }
public void ClipboardImagePaster_FileDropListWithMixedFiles() { string result = null; System.Threading.Thread t = new System.Threading.Thread(() => { var pManager = new PersistenceManager(); pManager.NewTree(); var editor = new NoteEditor(); var form = CreateForm(); form.Controls.Add(editor); var sut = new ImagePaster(editor, pManager); form.Shown += (sender, args) => { var fileList = new StringCollection(); fileList.Add(Path.GetFullPath(@"Resources\Sample Map.mm")); fileList.Add(Path.GetFullPath(@"Resources\MapCtrl1.png")); Clipboard.SetFileDropList(fileList); editor.Paste(); result = editor.HTML; form.Close(); }; form.ShowDialog(); }); t.SetApartmentState(System.Threading.ApartmentState.STA); t.Start(); t.Join(); Assert.IsTrue(result.ToLower().Contains("img")); Assert.AreEqual(1, result.ToLower().Where(a => a == '.').Count()); }
public void InsertImage() { var fileName = dialogs.GetImageFile(); if (fileName != null) { ImagePaster.InsertFormFile(noteGlue.Editor, fileName, noteGlue.CurrentMapNpde.Tree); } }
private async void PasteImagesFromClipboard(object sender, RoutedEventArgs e) { if (ImagePaster.CanInternalPasteFromClipboard()) { var baseInfos = ImagePaster.GetInternalPasteDataFromClipboard() as List <ImageControlBaseInfo>; if (baseInfos != null) { _controlManager.SelectNone(); _controlManager.ContinuedAddCount++; _controlManager.AddElements(baseInfos.Select(m => PackageBaseInfoToControl(m, true))); return; } } if (!ImagePaster.CanPasteImageFromClipboard()) { return; } try { var imageSources = await ImagePaster.GetPasteImagesFromClipboard(); if (imageSources.Count <= 0) { return; } _controlManager.SelectNone(); _controlManager.ContinuedAddCount++; var translate = _userConfigution.ImageSetting.PasteMoveUnitDistace * _controlManager.ContinuedAddCount; var controls = new List <ImageControl>(imageSources.Count); controls.AddRange(imageSources.Select(imageSource => PackageImageToControl(new AnimatedGif { Source = imageSource, Stretch = Stretch.Fill }, new Point(translate, translate)))); _controlManager.AddElements(controls); } catch (Exception ex) { App.Log.Error(ex.ToString()); Extentions.ShowMessageBox("无效的粘贴!"); } }
private void MainMenu_ContextMenuOpening(object sender, ContextMenuEventArgs e) { var element = sender as UserControl; var menuItems = element?.ContextMenu?.Items?.OfType <MenuItem>().ToArray(); if (menuItems == null) { return; } var menuItem = menuItems.SingleOrDefault(m => m.Tag.ToString() == "SaveAs"); if (menuItem != null) { menuItem.Visibility = _userConfigution.WindowState.InitEasyImagePath == null ? Visibility.Collapsed : Visibility.Visible; } menuItem = menuItems.SingleOrDefault(m => m.Tag.ToString() == "Paste"); if (menuItem != null) { menuItem.IsEnabled = ImagePaster.CanPasteImageFromClipboard(); } }