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
| Nom | Valeur | Description |
|---|---|---|
| None | 0 | Aucune partie de l’ornement de sélection. |
| TopLeft | 1 | Poignée supérieure gauche de l’ornement de sélection. |
| Top | 2 | Poignée du milieu supérieur de l’ornement de sélection. |
| TopRight | 3 | Poignée supérieure droite de l’ornement de sélection. |
| Right | 4 | Poignée centrale sur le bord droit de l’ornement de sélection. |
| BottomRight | 5 | Poignée inférieure droite de l’ornement de sélection. |
| Bottom | 6 | Poignée du milieu inférieur de l’ornement de sélection. |
| BottomLeft | 7 | Poignée inférieure gauche de l’ornement de sélection. |
| Left | 8 | Poignée centrale sur le bord gauche de l’ornement de sélection. |
| Selection | 9 | Zone dans les limites de l’ornement de sélection. |
Exemples
L’exemple suivant montre comment HitTestSelection déterminer s’il faut créer un glisser-déplacer pour lancer un DataObject glisser-déplacer. Pour implémenter le glisser-déplacer entre deux InkCanvas objets, consultez 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 pour indiquer 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.