Share via


Stroke.GetPacketValuesByProperty Method (Guid, Int32)

Returns the data for a specified packet property for one packet in the Stroke object.

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

Syntax

'Declaration
Public Function GetPacketValuesByProperty ( _
    id As Guid, _
    index As Integer _
) As Integer()
'Usage
Dim instance As Stroke 
Dim id As Guid 
Dim index As Integer 
Dim returnValue As Integer()

returnValue = instance.GetPacketValuesByProperty(id, _
    index)
public int[] GetPacketValuesByProperty(
    Guid id,
    int index
)
public:
array<int>^ GetPacketValuesByProperty(
    Guid id, 
    int index
)
public function GetPacketValuesByProperty(
    id : Guid, 
    index : int
) : int[]

Parameters

  • index
    Type: System.Int32

    The starting point of the zero-based index to a packet within the Stroke object.

Return Value

Type: array<System.Int32[]
Returns an array of signed 32-bit integers that specifies the value of the requested PacketProperty object for each point requested from the Stroke object.

Remarks

A specific packet property may not be available on a particular Stroke object. A Tablet PC may have more than one tablet for user input. The Tablets collection contains a list of all the tablets attached to the Tablet PC. Use the IsPacketPropertySupported method to determine if a particular packet property is supported by a specific Tablet object or by all the available tablets. Also, use the InkCollector.DesiredPacketDescription, InkOverlay.DesiredPacketDescription, or InkPicture.DesiredPacketDescription properties to control which packet properties are collected on new strokes.

Examples

In this example, each selected Stroke object of an InkOverlay object is modified so that each point of the second half of the stroke contains the maxium allowed NormalPressure packet value.

Using the GetPacketValuesByProperty method, the NormalPressure packet values for the second half of the Stroke object are obtained. The values are then set to the maximum allowed (as obtained via the GetPacketDescriptionPropertyMetrics method), and reapplied to the stroke using the SetPacketValuesByProperty method.

Try 
    For Each S As Stroke In mInkOverlay.Selection
        ' get the PacketProperty.NormalPressure metrics for the stroke 
        Dim metrics As TabletPropertyMetrics = S.GetPacketDescriptionPropertyMetrics(PacketProperty.NormalPressure)
        ' get the starting point 
        Dim startPt As Integer = S.PacketCount / 2
        ' get the NormalPressure values starting at startPt 
        Dim npValues() As Integer = S.GetPacketValuesByProperty(PacketProperty.NormalPressure, startPt)
        ' set the NormalPressure values to max 
        For k As Integer = 0 To npValues.Length - 1
            npValues(k) = metrics.Maximum
        Next 
        ' set the NormalPressure values starting at startPt
        S.SetPacketValuesByProperty(PacketProperty.NormalPressure, startPt, npValues)
    Next 

Catch ex As ArgumentException
    ' This exception will be raised if PacketProperty.NormalPressure is not supported 
    ' This will be the case if creating strokes with a mouse 
End Try
try
{
    foreach (Stroke S in mInkOverlay.Selection)
    {
        // get the PacketProperty.NormalPressure metrics for the stroke
        TabletPropertyMetrics metrics = S.GetPacketDescriptionPropertyMetrics(PacketProperty.NormalPressure);
        // get the starting point 
        int startPt = S.PacketCount / 2;
        // get the NormalPressure values starting at startPt 
        int[] npValues = S.GetPacketValuesByProperty(PacketProperty.NormalPressure, startPt);
        // set the NormalPressure values to max 
        for (int k = 0; k < npValues.Length; k++)
        {
            npValues[k] = metrics.Maximum;
        }
        // set the NormalPressure values starting at startPt
        S.SetPacketValuesByProperty(PacketProperty.NormalPressure, startPt, npValues);
    }
}
catch (ArgumentException)
{
    // This exception will be raised if PacketProperty.NormalPressure is not supported 
    // This will be the case if creating strokes with a mouse
}

Platforms

Windows 7, Windows Vista, Windows Server 2008 R2, Windows Server 2008

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Version Information

.NET Framework

Supported in: 3.0

See Also

Reference

Stroke Class

Stroke Members

GetPacketValuesByProperty Overload

Microsoft.Ink Namespace

InkCollector.DesiredPacketDescription

InkOverlay.DesiredPacketDescription

InkPicture.DesiredPacketDescription

PacketProperty

Tablet

Tablet.IsPacketPropertySupported

Tablets

Tablets.IsPacketPropertySupported