InkCanvasSelectionHitResult Enumeração
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Identifica as várias partes de um adorno de seleção em um InkCanvas.
public enum class InkCanvasSelectionHitResult
public enum InkCanvasSelectionHitResult
type InkCanvasSelectionHitResult =
Public Enum InkCanvasSelectionHitResult
- Herança
Campos
Bottom | 6 | A alça inferior intermediária do adorno de seleção. |
BottomLeft | 7 | A alça inferior esquerda do adorno de seleção. |
BottomRight | 5 | A alça inferior direita do adorno de seleção. |
Left | 8 | A alça intermediária na borda esquerda do adorno seleção. |
None | 0 | Nenhuma parte do adorno de seleção. |
Right | 4 | A alça intermediária na borda direita do adorno seleção. |
Selection | 9 | A área dentro dos limites do adorno de seleção. |
Top | 2 | A alça superior intermediária do adorno de seleção. |
TopLeft | 1 | A alça superior esquerda do adorno de seleção. |
TopRight | 3 | A alça superior direita do adorno de seleção. |
Exemplos
O exemplo a seguir demonstra como usar HitTestSelection para determinar se é necessário criar um DataObject para iniciar o arrastar e soltar. Para implementar arrastar e soltar entre dois InkCanvas objetos, consulte Como arrastar e soltar tinta.
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
Comentários
O HitTestSelection método retorna um InkCanvasSelectionHitResult para indicar qual parte do adorno de seleção se cruza ou envolve um Point. Isso é útil ao executar operações de arrastar e soltar.
Uso de texto XAML
Essa classe normalmente não é usada em XAML.