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("无效的粘贴!");
            }
        }
Exemplo n.º 3
0
        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("无效的粘贴!");
            }
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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"));
        }
Exemplo n.º 6
0
        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());
        }
Exemplo n.º 7
0
        public void InsertImage()
        {
            var fileName = dialogs.GetImageFile();

            if (fileName != null)
            {
                ImagePaster.InsertFormFile(noteGlue.Editor, fileName, noteGlue.CurrentMapNpde.Tree);
            }
        }
Exemplo n.º 8
0
        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("无效的粘贴!");
            }
        }
Exemplo n.º 9
0
        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();
            }
        }