다음을 통해 공유


Ink.CreateStroke 메서드 (array<Int32[], TabletPropertyDescriptionCollection)

업데이트: 2007년 11월

패킷 데이터에서 Stroke 개체를 만듭니다.

네임스페이스:  Microsoft.Ink
어셈블리:  Microsoft.Ink(Microsoft.Ink.dll)

구문

‘선언
Public Function CreateStroke ( _
    packetData As Integer(), _
    tabletPropertyDescriptionCollection As TabletPropertyDescriptionCollection _
) As Stroke
‘사용 방법
Dim instance As Ink
Dim packetData As Integer()
Dim tabletPropertyDescriptionCollection As TabletPropertyDescriptionCollection
Dim returnValue As Stroke

returnValue = instance.CreateStroke(packetData, _
    tabletPropertyDescriptionCollection)
public Stroke CreateStroke(
    int[] packetData,
    TabletPropertyDescriptionCollection tabletPropertyDescriptionCollection
)
public:
Stroke^ CreateStroke(
    array<int>^ packetData, 
    TabletPropertyDescriptionCollection^ tabletPropertyDescriptionCollection
)
public Stroke CreateStroke(
    int[] packetData,
    TabletPropertyDescriptionCollection tabletPropertyDescriptionCollection
)
public function CreateStroke(
    packetData : int[], 
    tabletPropertyDescriptionCollection : TabletPropertyDescriptionCollection
) : Stroke

매개 변수

  • packetData
    형식: array<System.Int32[]
    Stroke 개체를 구성하는 데 사용되는 패킷 데이터의 배열입니다.

반환 값

형식: Microsoft.Ink.Stroke
새로 만든 스트로크입니다.
새로 만든 Stroke 개체입니다.

설명

packetData 매개 변수의 배열 크기는 tabletPropertyDescriptionCollection 매개 변수의 크기로 나눌 수 있어야 합니다.

참고

packetData 매개 변수에서 각 패킷의 처음 두 요소는 X와 Y여야 합니다. 각 패킷의 첫 번째와 두 번째 위치에 X와 Y가 각각 지정되어 있지 않으면 ArgumentException이 throw됩니다.

예제

이 예제에서는 임의의 패킷 데이터에서 불규칙한 사인파를 나타내는 스트로크를 만듭니다. 먼저, 이러한 PacketProperty 형식의 TabletPropertyDescription 개체를 사용하여 TabletPropertyDescriptionCollection을 초기화하기 위해 PacketPropertyXYTabletPropertyMetrics를 가져옵니다. 기본 태블릿에서 NormalPressure가 지원되면 컬렉션에도 함께 추가됩니다. 그런 다음 실제 패킷 데이터를 만들어 CreateStroke 메서드에 전달합니다.

Dim allTablets As Tablets = New Tablets()
' get the property metrics for X and Y
Dim MetricX As TabletPropertyMetrics = allTablets.DefaultTablet.GetPropertyMetrics(PacketProperty.X)
Dim MetricY As TabletPropertyMetrics = allTablets.DefaultTablet.GetPropertyMetrics(PacketProperty.Y)
' create the TabletPropertyDescriptionCollection, add X and Y
Dim tpDescCollection As TabletPropertyDescriptionCollection = New TabletPropertyDescriptionCollection()
tpDescCollection.Add(New TabletPropertyDescription(PacketProperty.X, MetricX))
tpDescCollection.Add(New TabletPropertyDescription(PacketProperty.Y, MetricY))

' see if the default tablet supports pressure
Dim supportPressure As Boolean = allTablets.DefaultTablet.IsPacketPropertySupported(PacketProperty.NormalPressure)
' if so, add NormalPressure to TabletPropertyDescriptionCollection
If supportPressure Then
    Dim MetricP As TabletPropertyMetrics = allTablets.DefaultTablet.GetPropertyMetrics(PacketProperty.NormalPressure)
    tpDescCollection.Add(New TabletPropertyDescription(PacketProperty.NormalPressure, MetricP))
End If
' init random number generator
Dim R As Random = New Random()
' init total PacketCount, slotPerPacket and packet data array
Const PACKET_COUNT As Integer = 250
Dim slotPerPacket As Integer = tpDescCollection.Count
Dim pData((PACKET_COUNT * slotPerPacket) - 1) As Integer
' assign packet values
For k As Integer = 0 To PACKET_COUNT - 1
    ' assign X - X will increment by 106
    pData(k * slotPerPacket) = (k * 106)
    ' assign Y - Y will be 6000 +- 1500
    pData((k * slotPerPacket) + 1) = 6000 + R.Next(-1500, 1500)
    ' assign Pressure if supported, 25-255
    If (supportPressure) Then
        pData((k * slotPerPacket) + 2) = R.Next(25, 255)
    End If
    next
' create the Stroke
mInkOverlay.Ink.CreateStroke(pData, tpDescCollection)
mInkOverlay.AttachedControl.Invalidate()
Tablets allTablets = new Tablets();
// get the property metrics for X and Y
TabletPropertyMetrics MetricX = allTablets.DefaultTablet.GetPropertyMetrics(PacketProperty.X);
TabletPropertyMetrics MetricY = allTablets.DefaultTablet.GetPropertyMetrics(PacketProperty.Y);
// create the TabletPropertyDescriptionCollection, add X and Y
TabletPropertyDescriptionCollection tpDescCollection = new TabletPropertyDescriptionCollection();
tpDescCollection.Add(new TabletPropertyDescription(PacketProperty.X, MetricX));
tpDescCollection.Add(new TabletPropertyDescription(PacketProperty.Y, MetricY));

// see if the default tablet supports pressure
bool supportPressure = allTablets.DefaultTablet.IsPacketPropertySupported(PacketProperty.NormalPressure);
// if so, add NormalPressure to TabletPropertyDescriptionCollection
if (supportPressure)
{
    TabletPropertyMetrics MetricP = allTablets.DefaultTablet.GetPropertyMetrics(PacketProperty.NormalPressure);
    tpDescCollection.Add(new TabletPropertyDescription(PacketProperty.NormalPressure, MetricP));
}
// init random number generator
Random R = new Random();
// init total PacketCount, slotPerPacket and packet data array
const int PACKET_COUNT = 250;
int slotPerPacket = tpDescCollection.Count;
int[] pData = new int[PACKET_COUNT*slotPerPacket];
// assign packet values
for (int k = 0; k < PACKET_COUNT; k++)
{
    // assign X - X will increment by 106
    pData[k * slotPerPacket] = (k * 106);
    // assign Y - Y will be 6000 +- 1500
    pData[(k * slotPerPacket) + 1] = 6000 + R.Next(-1500, 1500);
    // assign Pressure if supported, 25-255
    if (supportPressure)
    {
        pData[(k * slotPerPacket) + 2] = R.Next(25, 255);
    }
}
// create the Stroke
mInkOverlay.Ink.CreateStroke(pData, tpDescCollection);
mInkOverlay.AttachedControl.Invalidate();

플랫폼

Windows Vista

.NET Framework 및 .NET Compact Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

3.0에서 지원

참고 항목

참조

Ink 클래스

Ink 멤버

CreateStroke 오버로드

Microsoft.Ink 네임스페이스

Stroke

TabletPropertyDescriptionCollection.InkToDeviceScaleX

TabletPropertyDescriptionCollection.InkToDeviceScaleY

Ink.CreateStrokes

Ink.DeleteStroke

Ink.DeleteStrokes