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); }
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); } }
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(); }
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); }
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); } } }
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); } })); }
public DiagramEditorViewModelExtended(ObservableDiagram diagram, bool isNew) : base(diagram, isNew) { }
public void DiagramToClipboard(ObservableDiagram diagram, float scaleFactor) { IntegrationUtils.DiagramToClipboard(diagram, scaleFactor); }