InkCollector.DesiredPacketDescription, propriété
Mise à jour : November 2007
Obtient ou définit un intérêt dans les aspects du paquet associé à l'entrée manuscrite tracée sur l'objet InkCollector.
Espace de noms : Microsoft.Ink
Assembly : Microsoft.Ink (dans Microsoft.Ink.dll)
Syntaxe
'Déclaration
Public Property DesiredPacketDescription As Guid()
'Utilisation
Dim instance As InkCollector
Dim value As Guid()
value = instance.DesiredPacketDescription
instance.DesiredPacketDescription = value
public Guid[] DesiredPacketDescription { get; set; }
public:
property array<Guid>^ DesiredPacketDescription {
array<Guid>^ get ();
void set (array<Guid>^ value);
}
/** @property */
public Guid[] get_DesiredPacketDescription()
/** @property */
public void set_DesiredPacketDescription(Guid[] value)
public function get DesiredPacketDescription () : Guid[]
public function set DesiredPacketDescription (value : Guid[])
Valeur de propriété
Type : array<System.Guid[]
Tableaux d'objets Guid (page pouvant être en anglais) représentant chacun un aspect du paquet associé à l'entrée manuscrite tracée sur l'objet InkCollector.
Notes
La description de paquet est un tableau d'objets Guid (page pouvant être en anglais) de l'objet PacketProperty.
Par défaut, la propriété DesiredPacketDescription contient X, Yet NormalPressure à partir de l'objet PacketProperty. Si vous affectez une autre valeur à la propriété DesiredPacketDescription, X et Y seront également ajoutés. Par exemple, si vous affectez la valeur ButtonPressure à la propriété DesiredPacketDescription uniquement, une commande get retourne {X, Y, ButtonPressure}, et pas seulement {ButtonPressure}.
Lorsque la propriété DesiredPacketDescription a une valeur qui inclut PacketStatus, PacketStatus est ajouté en troisième position. Par exemple, si vous affectez (a, b, c, d, PacketStatus, e, f) à la propriété DesiredPacketDescription, une commande get retourne (X, Y, PacketStatus, a, b, c, d, e, f).
En mode multitablet, il s'agit de la description de paquet pour tous les périphériques de la tablette. Si l'un des périphériques ne prend pas en charge une propriété de description de paquet connue, les données de propriété ne sont pas retournées.
Les modifications apportées à cette propriété n'affectent pas les données de paquet entrantes jusqu'à ce que la propriété Enabled passe de false à true.
Exemples
L'exemple suivant montre comment utiliser la propriété DesiredPacketDescription pour exprimer l'intérêt dans des objets Guid (page pouvant être en anglais) spécifiques de l'objet PacketProperty, puis utiliser les propriétés de paquet exposées pendant l'événement NewPackets.
En premier lieu, la propriété DesiredPacketDescription est initialisée et les gestionnaires d'événements sont assignés.
' Express interest in PacketStatus, TimerTick, and NormalPressure
' X and Y will be added automatically
Dim PacketDesc As Guid() = New Guid() _
{ _
PacketProperty.PacketStatus, _
PacketProperty.TimerTick, _
PacketProperty.NormalPressure _
}
' mInkObject can be InkCollector, InkOverlay, or InkPicture
mInkObject.DesiredPacketDescription = PacketDesc
' assign event handlers
AddHandler mInkObject.CursorInRange, New InkCollectorCursorInRangeEventHandler(AddressOf mInkObject_CursorInRange)
AddHandler mInkObject.NewPackets, New InkCollectorNewPacketsEventHandler(AddressOf mInkObject_NewPackets)
// Express interest in PacketStatus, TimerTick, and NormalPressure
// X and Y will be added automatically
Guid[] PacketDesc = new Guid[]
{
PacketProperty.PacketStatus,
PacketProperty.TimerTick,
PacketProperty.NormalPressure
};
// mInkObject can be InkCollector, InkOverlay, or InkPicture
mInkObject.DesiredPacketDescription = PacketDesc;
// assign event handlers
mInkObject.CursorInRange += new InkCollectorCursorInRangeEventHandler(mInkObject_CursorInRange);
mInkObject.NewPackets += new InkCollectorNewPacketsEventHandler(mInkObject_NewPackets);
Lorsque l'événement CursorInRange se déclenche, un contrôle est effectué pour déterminer s'il s'agit du premier contact de l'objet InkCollector avec cet objet Cursor spécifique. Si c'est le cas, un clone de la propriété DefaultDrawingAttributes est assigné à la propriété DrawingAttributes. Ainsi, lors de l'accès suivant à la propriété, DrawingAttributes aucune exception de référence null n'est levée.
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;
}
}
}
Lorsque l'événement NewPackets se déclenche, un contrôle est effectué pour déterminer si NormalPressure est inclus dans les données de paquet. Dans ce cas, les informations de pression sont affichées sur une étiquette d'état, et la propriété DrawingAttributes est modifiée.
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;
}
}
}
Plateformes
Windows Vista
Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Informations de version
.NET Framework
Pris en charge dans : 3.0