Freigeben über


IStylusAsyncPlugin.Packets-Methode

Benachrichtigt das die IStylusAsyncPlugin-Schnittstelle implementierende Objekt darüber, dass sich der Tablettstift auf dem Digitizer bewegt.

Namespace:  Microsoft.StylusInput
Assembly:  Microsoft.Ink (in Microsoft.Ink.dll)

Syntax

'Declaration
Sub Packets ( _
    sender As RealTimeStylus, _
    data As PacketsData _
)
'Usage
Dim instance As IStylusAsyncPlugin
Dim sender As RealTimeStylus
Dim data As PacketsData

instance.Packets(sender, data)
void Packets(
    RealTimeStylus sender,
    PacketsData data
)
void Packets(
    RealTimeStylus^ sender, 
    PacketsData^ data
)
void Packets(
    RealTimeStylus sender,
    PacketsData data
)
function Packets(
    sender : RealTimeStylus, 
    data : PacketsData
)

Parameter

Hinweise

Sie können die Paketdaten ändern, indem Sie die geerbte SetData-Methode des PacketsData-Objekts aufrufen, das im data-Parameter enthalten ist.

Hinweis

Eine ArgumentException-Ausnahme wird von der SetData-Methode ausgelöst, wenn die Länge des Arrays im value-Parameter kein Vielfaches des Werts der geerbten PacketPropertyCount-Eigenschaft ist.

Sie können die Pakete abbrechen, indem Sie die SetData-Methode aufrufen, deren value-Parameter auf nullNULL-Verweis (Nothing in Visual Basic) (Nothing in Microsoft Visual Basic .NET) festgelegt ist.

Beispiele

Dieses C#-Beispiel ist ein Auszug aus dem RealTimeStylus Plug-in Sample. Dabei wird eine Packets-Methode implementiert, die einen kleinen Kreis am Speicherort jedes neu erhaltenen Pakets zeichnet.

public void Packets(RealTimeStylus sender,  PacketsData data)
{           
  // For each new packet received, extract the x,y data
  // and draw a small circle around the result.
  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.Green, point.X - 2, point.Y - 2, 4, 4);
  }
}

Dieses Visual Basic .NET-Beispiel ist ein Auszug aus dem RealTimeStylus Plug-in Sample. Dabei wird eine Packets-Methode implementiert, die einen kleinen Kreis am Speicherort jedes neu erhaltenen Pakets zeichnet.

Public Sub Packets(ByVal sender As RealTimeStylus, ByVal data As PacketsData) _
 Implements IStylusAsyncPlugin.Packets
    ' For each new packet received, extract the x,y data
    ' and draw a small circle around the result.
    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.Green, point.X - 2, point.Y - 2, 4, 4)
    Next i
End Sub 'Packets

Plattformen

Windows Vista, Windows XP SP2, Windows Server 2003

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Versionsinformationen

.NET Framework

Unterstützt in: 3.0

Siehe auch

Referenz

IStylusAsyncPlugin-Schnittstelle

IStylusAsyncPlugin-Member

Microsoft.StylusInput-Namespace

RealTimeStylus

Microsoft.StylusInput.PluginData.PacketsData