InkCanvasSelectionHitResult Enumeration
Identifies the various parts of a selection adorner on an InkCanvas.
Assembly: PresentationFramework (in PresentationFramework.dll)
| Member name | Description | |
|---|---|---|
| Bottom | The lower middle handle of the selection adorner. | |
| BottomLeft | The lower left handle of the selection adorner. | |
| BottomRight | The lower right handle of the selection adorner. | |
| Left | The middle handle on the left edge of the selection adorner. | |
| None | No part of the selection adorner. | |
| Right | The middle handle on the right edge of the selection adorner. | |
| Selection | The area within the bounds of the selection adorner. | |
| Top | The upper middle handle of the selection adorner. | |
| TopLeft | The upper left handle of the selection adorner. | |
| TopRight | The upper right handle of the selection adorner. |
The HitTestSelection method returns an InkCanvasSelectionHitResult to indicate which part of the selection adorner intersects or surrounds a Point. This is useful when performing drag-and-drop operations.
This class is not typically used in XAML.
The following example demonstrates how use HitTestSelection to determine whether to create a DataObject to initiate drag and drop. To implement drag and drop between two InkCanvas objects, see How to: Drag and Drop Ink.
Private Sub InkCanvas_PreviewMouseDown(ByVal sender As Object, _ ByVal e As MouseButtonEventArgs) Dim ic As InkCanvas = CType(sender, InkCanvas) Dim pt As Point = e.GetPosition(ic) ' If the user is moving selected strokes, prepare the strokes to be ' moved to another InkCanvas. If ic.HitTestSelection(pt) = InkCanvasSelectionHitResult.Selection Then Dim selectedStrokes As StrokeCollection = _ ic.GetSelectedStrokes() Dim strokesToMove As StrokeCollection = _ selectedStrokes.Clone() ' Remove the offset of the selected strokes so they ' are positioned when the strokes are dropped. Dim inkBounds As Rect = strokesToMove.GetBounds() TranslateStrokes(strokesToMove, -inkBounds.X, -inkBounds.Y) ' Perform drag and drop. Dim ms As New MemoryStream() strokesToMove.Save(ms) Dim dataObject As New DataObject _ (StrokeCollection.InkSerializedFormat, ms) Dim effects As DragDropEffects = _ DragDrop.DoDragDrop(ic, dataObject, DragDropEffects.Move) If (effects And DragDropEffects.Move) = DragDropEffects.Move Then ' Remove the selected strokes from the current InkCanvas. ic.Strokes.Remove(selectedStrokes) End If End If End Sub 'OnMouseDown
Available since 3.0