private void DiagramImage_MouseMove(object sender, MouseEventArgs e)
 {
     if (sender is Image image && e.LeftButton == MouseButtonState.Pressed)
     {
         ObservableDiagram od = VM.ObservableDiagram;
         IntegrationUtils.DiagramToDragDrop(image, od);
     }
 }
        private bool UpdateCursorPosition()
        {
            ObservableDiagram od = VM.ObservableDiagram;

            if (null != od)
            {
                Point p = MouseUtils.CorrectGetPosition(DiagramImage);
                od.CursorX = p.X;
                od.CursorY = p.Y;
                return(od.ValidCommandsAtCursor);
            }
            return(false);
        }
        private bool UpdateCursorPosition()
        {
            ObservableDiagram od = ((DiagramEditorViewModel)(DataContext)).ObservableDiagram as ObservableDiagram;

            if (null != od)
            {
                Point p = MouseUtils.CorrectGetPosition(DiagramImage);
                od.CursorX = p.X;
                od.CursorY = p.Y;
                return(od.ValidCommandsAtCursor);
            }
            return(false);
        }
示例#4
0
        void ResultsListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            foreach (object item in e.AddedItems)
            {
                ObservableDiagram od = item as ObservableDiagram;
                VM.SelectedResults.Add(od);
            }

            foreach (object item in e.RemovedItems)
            {
                ObservableDiagram od = item as ObservableDiagram;
                VM.SelectedResults.Remove(od);
            }
        }
示例#5
0
        public static void DiagramToClipboard(ObservableDiagram diagram, float scaleFactor)
        {
            if (null == diagram)
            {
                throw new ArgumentNullException(nameof(diagram));
            }

            DataObject data = new DataObject();

            AddImageFormats(data, diagram, scaleFactor);

            Clipboard.SetDataObject(data, true);

            Clipboard.Flush();
        }
示例#6
0
        public static void DiagramToDragDrop(DependencyObject dragSource, ObservableDiagram diagram)
        {
            if (null == dragSource)
            {
                throw new ArgumentNullException(nameof(dragSource));
            }

            if (null == diagram)
            {
                throw new ArgumentNullException(nameof(diagram));
            }

            DataObject data = new DataObject();

            AddImageFormats(data, diagram, 1.0f);

            DragDrop.DoDragDrop(dragSource, data, DragDropEffects.Copy | DragDropEffects.Move);
        }
示例#7
0
        void DiagramsListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            ObservableDiagramLibraryNode selectedNode = VM.SelectedNode;

            if (null != selectedNode)
            {
                foreach (object item in e.AddedItems)
                {
                    ObservableDiagram od = item as ObservableDiagram;
                    selectedNode.SelectedDiagrams.Add(od);
                }

                foreach (object item in e.RemovedItems)
                {
                    ObservableDiagram od = item as ObservableDiagram;
                    selectedNode.SelectedDiagrams.Remove(od);
                }
            }
        }
示例#8
0
        private static void AddImageFormats(DataObject data, ObservableDiagram diagram, float scaleFactor)
        {
            Bitmap bmp = ImageUtils.SvgTextToBitmap(diagram.SvgText, diagram.TotalWidth, diagram.TotalHeight, scaleFactor);

            // Standard bitmap, no transparency
            data.SetData(DataFormats.Bitmap, ImageUtils.AddBackground(bmp, Background.White));

            // As PNG
            data.SetData("PNG", ImageUtils.BitmapToPngStream(bmp));

            // As EMF
            data.SetData(DataFormats.EnhancedMetafile, ImageUtils.BitmapToMetafileStream(bmp));

            // As PNG temp file
            if (GetEnhancedCopy())
            {
                data.SetFileDropList(new StringCollection {
                    ImageUtils.BitmapToPngTempFile(bmp, diagram.Title)
                });
            }
        }
        protected override Task ExportDiagramAsync(int diagramIndex)
        {
            return(Task.Factory.StartNew(() =>
            {
                try
                {
                    ObservableDiagram od = DiagramsToExport[diagramIndex];

                    string svgText = od.SvgText;
                    int width = od.TotalWidth;
                    int height = od.TotalHeight;

                    string filePath = GetFullFilePath(diagramIndex, OverwriteFiles);

                    ImageUtils.ExportImageFile(svgText, width, height, ExportFormat, ScaleFactor, filePath);

                    _createdFiles.Add(filePath);
                }
                catch (Exception ex)
                {
                    ExceptionUtils.HandleException(ex);
                }
            }));
        }
示例#10
0
 public DiagramEditorViewModelExtended(ObservableDiagram diagram, bool isNew) : base(diagram, isNew)
 {
 }
示例#11
0
 public void DiagramToClipboard(ObservableDiagram diagram, float scaleFactor)
 {
     IntegrationUtils.DiagramToClipboard(diagram, scaleFactor);
 }