InkOverlay.NewPackets-Ereignis
Tritt ein, wenn das InkOverlay-Objekt Pakete empfängt.
Namespace: Microsoft.Ink
Assembly: Microsoft.Ink (in Microsoft.Ink.dll)
Syntax
'Declaration
Public Event NewPackets As InkCollectorNewPacketsEventHandler
'Usage
Dim instance As InkOverlay
Dim handler As InkCollectorNewPacketsEventHandler
AddHandler instance.NewPackets, handler
public event InkCollectorNewPacketsEventHandler NewPackets
public:
event InkCollectorNewPacketsEventHandler^ NewPackets {
void add (InkCollectorNewPacketsEventHandler^ value);
void remove (InkCollectorNewPacketsEventHandler^ value);
}
/** @event */
public void add_NewPackets (InkCollectorNewPacketsEventHandler value)
/** @event */
public void remove_NewPackets (InkCollectorNewPacketsEventHandler value)
JScript unterstützt keine Ereignisse.
Hinweise
Ein InkOverlay-Objekt empfängt ein Paket, während ein Strich erfasst wird. Paketereignisse treten schnell ein; ein NewPackets-Ereignishandler muss schnell reagieren, sonst leidet die Leistung.
Der Ereignishandler empfängt ein Argument vom Typ InkCollectorNewPacketsEventArgs, das Daten zu diesem Ereignis enthält.
Beim Erstellen eines InkCollectorNewPacketsEventHandler-Delegaten bestimmen Sie die Methode für die Ereignisbehandlung. Um dem Ereignishandler das Ereignis zuzuordnen, fügen Sie dem Ereignis eine Instanz des Delegaten hinzu. Der Ereignishandler wird bei jedem Eintreten des Ereignisses aufgerufen, sofern der Delegat nicht entfernt wird. Aus Leistungsgründen ist das Standardinteresse an einem Ereignis deaktiviert, es wird jedoch automatisch aktiviert, wenn Sie einen Ereignishandler hinzufügen.
Dieses Ereignis kann sich nachteilig auf das Verhalten von Freihandeingaben auswirken, wenn der Umfang des in den Ereignishandlern ausgeführten Codes zu groß ist.
Beispiele
In diesem Beispiel wird veranschaulicht, wie Sie das CursorInRange-Ereignis und das NewPackets-Ereignis abonnieren können, um Daten über den bei der Freihandeingabe ausgeübten Druck zu erhalten und diese Informationen zum Bearbeiten eines DrawingAttributes-Objekts zu verwenden.
Beim Auslösen des CursorInRange-Ereignisses wird überprüft, ob das InkCollector-Objekt zum ersten Mal Kontakt mit diesem Cursor-Objekt hat. Wenn dies der Fall ist, wird die DrawingAttributes-Eigenschaft einem Klon der DefaultDrawingAttributes-Eigenschaft zugewiesen. Hierdurch wird verhindert, dass durch den anschließenden Zugriff auf die DrawingAttributes-Eigenschaft eine NULL-Verweisausnahme ausgelöst wird.
Private Sub mInkObject_CursorInRange(ByVal sender As Object, ByVal e As InkCollectorCursorInRangeEventArgs)
Const MOUSE_CURSOR_ID As Integer = 1
If e.NewCursor Then
' mInkObject can be InkCollector, InkOverlay, or InkPicture
e.Cursor.DrawingAttributes = mInkObject.DefaultDrawingAttributes.Clone()
' if this cursor is the mouse, we'll set color to red
If (MOUSE_CURSOR_ID = e.Cursor.Id) Then
e.Cursor.DrawingAttributes.Color = Color.Red
End If
End If
End Sub
private void mInkObject_CursorInRange(object sender, InkCollectorCursorInRangeEventArgs e)
{
const int MOUSE_CURSOR_ID = 1;
if (e.NewCursor)
{
// mInkObject can be InkCollector, InkOverlay, or InkPicture
e.Cursor.DrawingAttributes = mInkObject.DefaultDrawingAttributes.Clone();
// if this cursor is the mouse, we'll set color to red
if (MOUSE_CURSOR_ID == e.Cursor.Id)
{
e.Cursor.DrawingAttributes.Color = Color.Red;
}
}
}
Beim Auslösen des NewPackets-Ereignisses wird überprüft, ob NormalPressure in den Paketdaten enthalten ist. Wenn dies der Fall ist, werden Druckinformationen in einer Statusbezeichnung angezeigt, und die DrawingAttributes-Eigenschaft wird geändert.
Private Sub mInkObject_NewPackets(ByVal sender As Object, ByVal e As InkCollectorNewPacketsEventArgs)
' find the NormalPressure PacketProperty
' Set NormalPressure to -1 if not there, as some digitizers won't support it
Dim PacketDesc As Guid() = e.Stroke.PacketDescription
Dim NormalPressure As Integer = -1
For k As Integer = 0 To PacketDesc.Length - 1
If PacketDesc(k) = PacketProperty.NormalPressure Then
' for simplicity, in case of multiple packets, use the first packet only
NormalPressure = e.PacketData(k)
End If
Next k
' If we have the NormalPressure information
' change DrawingAttributes according to the NormalPressure
' Note that the change does not take effect until the next stroke
If NormalPressure <> -1 Then
' display the pressure on a status label
Me.statusLabelPressure.Text = NormalPressure.ToString()
e.Cursor.DrawingAttributes.Width = NormalPressure * 4
' if pressure is above 127, change color to Red
If NormalPressure > 127 Then
e.Cursor.DrawingAttributes.Color = Color.Red
Else
e.Cursor.DrawingAttributes.Color = mInkObject.DefaultDrawingAttributes.Color
End If
End If
End Sub
private void mInkObject_NewPackets(object sender, InkCollectorNewPacketsEventArgs e)
{
// find the NormalPressure PacketProperty
// Set NormalPressure to -1 if not there, as some digitizers won't support it
Guid[] PacketDesc = e.Stroke.PacketDescription;
int NormalPressure = -1;
for (int k = 0; k < PacketDesc.Length; k++)
{
if (PacketDesc[k] == PacketProperty.NormalPressure)
{
// for simplicity, in case of multiple packets, use the first packet only
NormalPressure = e.PacketData[k];
}
}
// If we have the NormalPressure information
// change DrawingAttributes according to the NormalPressure
// Note that the change does not take effect until the next stroke
if (NormalPressure != -1)
{
// display the pressure on a status label
this.statusLabelPressure.Text = NormalPressure.ToString();
e.Cursor.DrawingAttributes.Width = NormalPressure * 4;
// if pressure is above 127, change color to Red
if (NormalPressure > 127)
{
e.Cursor.DrawingAttributes.Color = Color.Red;
}
else
{
e.Cursor.DrawingAttributes.Color = mInkObject.DefaultDrawingAttributes.Color;
}
}
}
Plattformen
Windows Vista
.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
InkCollectorNewPacketsEventArgs
InkOverlay.DesiredPacketDescription
InkOverlay.NewPackets