Compartir a través de


IStylusAsyncPlugin.StylusDown (Método)

Actualización: noviembre 2007

Notifica al complemento de implementación que el lápiz ha tocado la superficie del digitalizador.

Espacio de nombres:  Microsoft.StylusInput
Ensamblado:  Microsoft.Ink (en Microsoft.Ink.dll)

Sintaxis

'Declaración
Sub StylusDown ( _
    sender As RealTimeStylus, _
    data As StylusDownData _
)
'Uso
Dim instance As IStylusAsyncPlugin
Dim sender As RealTimeStylus
Dim data As StylusDownData

instance.StylusDown(sender, data)
void StylusDown(
    RealTimeStylus sender,
    StylusDownData data
)
void StylusDown(
    RealTimeStylus^ sender, 
    StylusDownData^ data
)
void StylusDown(
    RealTimeStylus sender,
    StylusDownData data
)
function StylusDown(
    sender : RealTimeStylus, 
    data : StylusDownData
)

Parámetros

Comentarios

Puede modificar los datos de la entrada mediante una llamada al método SetData heredado del objeto StylusDownData que está contenido en el parámetro data.

Nota

El método SetData inicia la excepción ArgumentException si la longitud de la matriz del parámetro value no es igual al valor de la propiedad PacketPropertyCount heredada.

Ejemplos

En este ejemplo de C#, que es una adaptación de RealTimeStylus Plug-in Sample, se muestra una implementación del método StylusDown. En el ejemplo se dibuja un círculo púrpura en torno al punto en el que el lápiz toca el digitalizador. La variable myGraphics contiene una referencia interna a un objeto Graphics del control al que RealTimeStylus está asociado.

public void StylusDown(RealTimeStylus sender, StylusDownData data) 
{
    for (int i = 0; i < data.Count; i += data.PacketPropertyCount)
    {
        // Packet data always has x followed by y followed by the rest
        Point point = new Point(data[i], data[i+1]);

        // Since the packet data is in Ink Space coordinates, we need to convert to Pixels...
        point.X = (int)Math.Round((float)point.X * (float)myGraphics.DpiX/2540.0F);
        point.Y = (int)Math.Round((float)point.Y * (float)myGraphics.DpiY/2540.0F);

        // Draw a circle corresponding to the packet
        myGraphics.DrawEllipse(Pens.Purple, point.X - 2, point.Y - 2, 4, 4);
    }
}

En este ejemplo de Microsoft Visual Basic .NET, adaptado a partir de RealTimeStylus Plug-in Sample, se muestra una implementación del método StylusDown. En el ejemplo se dibuja un círculo morado en torno al punto en el que el lápiz toca el digitalizador. La variable myGraphics contiene una referencia interna a un objeto Graphics del control al que RealTimeStylus está asociado.

Public Sub StylusDown(ByVal sender As RealTimeStylus, ByVal data As StylusDownData) _
 Implements IStylusAsyncPlugin.StylusDown
    Dim i As Integer
    For i = 0 To data.Count - data.PacketPropertyCount Step data.PacketPropertyCount
        ' Packet data always has x followed by y followed by the rest
        Dim point As New Point(data(i), data((i + 1)))

        ' Since the packet data is in Ink Space coordinates, we need to convert to Pixels...
        point.X = Math.Round((System.Convert.ToSingle(point.X) * System.Convert.ToSingle(myGraphics.DpiX) / 2540.0F))
        point.Y = Math.Round((System.Convert.ToSingle(point.Y) * System.Convert.ToSingle(myGraphics.DpiY) / 2540.0F))

        ' Draw a circle corresponding to the packet
        myGraphics.DrawEllipse(Pens.Purple, point.X - 2, point.Y - 2, 4, 4)
    Next i
End Sub 'StylusDown

Plataformas

Windows Vista, Windows XP SP2, Windows Server 2003

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Información de versión

.NET Framework

Compatible con: 3.0

Vea también

Referencia

IStylusAsyncPlugin (Interfaz)

IStylusAsyncPlugin (Miembros)

Microsoft.StylusInput (Espacio de nombres)

StylusDownData