InkCanvasSelectionHitResult Enumeração
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Identifica as várias partes de um adornador selecionado num InkCanvas.
public enum class InkCanvasSelectionHitResult
public enum InkCanvasSelectionHitResult
type InkCanvasSelectionHitResult =
Public Enum InkCanvasSelectionHitResult
- Herança
Campos
| Name | Valor | Description |
|---|---|---|
| None | 0 | Não faz parte da seleção do adorno. |
| TopLeft | 1 | A pega superior esquerda do adornador de seleção. |
| Top | 2 | A pega superior central do adorno de seleção. |
| TopRight | 3 | A pega superior direita do adorador de seleção. |
| Right | 4 | A pega do meio está na extremidade direita do adorno de seleção. |
| BottomRight | 5 | A pega inferior direita do adornador de seleção. |
| Bottom | 6 | A pega inferior do meio do adornador de seleção. |
| BottomLeft | 7 | A pega inferior esquerda do adornador de seleção. |
| Left | 8 | A pega do meio está na extremidade esquerda do adorno de seleção. |
| Selection | 9 | A área dentro dos limites do adornador de seleção. |
Exemplos
O exemplo seguinte demonstra como determinar HitTestSelection se deve criar um DataObject arrastar e largar. Para implementar arrastar e largar entre dois InkCanvas objetos, veja Como: Arrastar e Largar 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
Observações
O HitTestSelection método retorna um InkCanvasSelectionHitResult para indicar qual parte do adorador de seleção intersecta ou rodeia um Point. Isto é útil ao realizar operações de arrastar e largar.
Utilização de Texto XAML
Esta classe não é normalmente usada em XAML.