/// Handles the InkOverlay to ensure that displayed strokes have not been moved. /// Code pulled from: http://windowssdk.msdn.microsoft.com/en-us/library/microsoft.ink.inkoverlay.selectionmoved.aspx /// </summary> /// <param name="sender">Reference to the object that raised the event</param> /// <param name="e">Passes an object specific to the event that is being handled</param> private void sketchInk_SelectionMoved(object sender, InkOverlaySelectionMovedEventArgs e) { // Get the selection's bounding box System.Drawing.Rectangle newBounds = sketchInk.Selection.GetBoundingBox(); // Move to back to original spot sketchInk.Selection.Move(e.OldSelectionBoundingRect.Left - newBounds.Left, e.OldSelectionBoundingRect.Top - newBounds.Top); // Trick to insure that selection handles are updated sketchInk.Selection = sketchInk.Selection; }
/// <summary> /// Resizes InkPicture when necessary (for scrolling) and notifies subscribers /// </summary> protected void inkPic_SelectionMoved(object sender, InkOverlaySelectionMovedEventArgs e) { Rectangle oldBB = e.OldSelectionBoundingRect; Rectangle newBB = inkPic.Selection.GetBoundingBox(); InkTransformedEventHandler xformEvent = InkTransformed; if (xformEvent != null) { xformEvent(oldBB, newBB, inkPic.Selection, InkTransformEventType.SelectionToolTransform); } this.resizeInkPicture(); updateFocus(); }
/* For any selection movement or resizing we need * to fix the node center points. */ private void inkOverlay_SelectionMoved(object sender, InkOverlaySelectionMovedEventArgs e) { if (this.InvokeRequired) { return; } Nodes selectedNodes = graph.Nodes.getNodes(inkOverlay.Selection); for (int i = 0; i < selectedNodes.Length(); i++) { Rectangle r = selectedNodes[i].Stroke.GetBoundingBox(); selectedNodes[i].CenterPoint = new Point(r.X + r.Width / 2, r.Y + r.Height / 2); } Invalidate(); }
/* For any selection movement or resizing we need * to fix the node center points. */ private void inkOverlay_SelectionMoved(object sender, InkOverlaySelectionMovedEventArgs e) { if(this.InvokeRequired) return; Nodes selectedNodes = graph.Nodes.getNodes(inkOverlay.Selection); for(int i=0; i<selectedNodes.Length(); i++) { Rectangle r = selectedNodes[i].Stroke.GetBoundingBox(); selectedNodes[i].CenterPoint = new Point(r.X+r.Width/2, r.Y+r.Height/2); } Invalidate(); }
private void inkoverlay_SelectionMoved(object sender, InkOverlaySelectionMovedEventArgs e) { // Share impl with resize. inkoverlay_SelectionMovedOrResized(sender, e.OldSelectionBoundingRect); }
private void inkoverlay_SelectionMoved(object sender, InkOverlaySelectionMovedEventArgs e) { // Share impl with resize. inkoverlay_SelectionMovedOrResized(sender,e.OldSelectionBoundingRect); }
/// <summary> /// Resizes InkPicture when necessary (for scrolling) /// </summary> protected void inkPic_SelectionMoved(object sender, InkOverlaySelectionMovedEventArgs e) { this.resizeInkPicture(); updateFocus(); }