InkCanvasSelectionHitResult Énumération
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Identifie les différentes parties d'un ornement de sélection sur un InkCanvas.
public enum class InkCanvasSelectionHitResult
public enum InkCanvasSelectionHitResult
type InkCanvasSelectionHitResult =
Public Enum InkCanvasSelectionHitResult
- Héritage
Champs
Bottom | 6 | Handle inférieur central de l'ornement de sélection. |
BottomLeft | 7 | Handle inférieur gauche de l'ornement de sélection. |
BottomRight | 5 | Handle inférieur droit de l'ornement de sélection. |
Left | 8 | Handle central situé sur le bord gauche de l'ornement de sélection. |
None | 0 | Aucune partie de l'ornement de sélection. |
Right | 4 | Handle central situé sur le bord droit de l'ornement de sélection. |
Selection | 9 | Zone à l'intérieur des limites de l'ornement de sélection. |
Top | 2 | Handle supérieur central de l'ornement de sélection. |
TopLeft | 1 | Handle supérieur gauche de l'ornement de sélection. |
TopRight | 3 | Handle supérieur droit de l'ornement de sélection. |
Exemples
L’exemple suivant montre comment HitTestSelection déterminer s’il faut créer un élément pour lancer le DataObject glisser-déplacer. Pour implémenter le glisser-déplacer entre deux InkCanvas objets, voir How to: Drag and Drop Ink.
void InkCanvas_PreviewMouseDown(object sender, MouseEventArgs e)
{
InkCanvas ic = (InkCanvas)sender;
Point pt = 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)
{
StrokeCollection selectedStrokes = ic.GetSelectedStrokes();
StrokeCollection strokesToMove = selectedStrokes.Clone();
// Remove the offset of the selected strokes so they
// are positioned when the strokes are dropped.
Rect inkBounds = strokesToMove.GetBounds();
TranslateStrokes(strokesToMove, -inkBounds.X, -inkBounds.Y);
// Perform drag and drop.
MemoryStream ms = new MemoryStream();
strokesToMove.Save(ms);
DataObject dataObject = new DataObject(
StrokeCollection.InkSerializedFormat, ms);
DragDropEffects effects =
DragDrop.DoDragDrop(ic, dataObject,
DragDropEffects.Move);
if ((effects & DragDropEffects.Move) ==
DragDropEffects.Move)
{
// Remove the selected strokes
// from the current InkCanvas.
ic.Strokes.Remove(selectedStrokes);
}
}
}
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
Remarques
La HitTestSelection méthode retourne une InkCanvasSelectionHitResult valeur indiquant quelle partie de l’ornement de sélection croise ou entoure un Point. Cela est utile lors de l’exécution d’opérations de glisser-déplacer.
Utilisation du texte XAML
Cette classe n’est généralement pas utilisée en XAML.