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 개체를 구성하는 데 사용되는 패킷 데이터의 배열입니다.
- tabletPropertyDescriptionCollection
형식: Microsoft.Ink.TabletPropertyDescriptionCollection
packetData 배열에 들어 있는 속성을 설명하는 TabletPropertyDescriptionCollection 컬렉션입니다.
반환 값
형식: Microsoft.Ink.Stroke
새로 만든 스트로크입니다.
새로 만든 Stroke 개체입니다.
설명
packetData 매개 변수의 배열 크기는 tabletPropertyDescriptionCollection 매개 변수의 크기로 나눌 수 있어야 합니다.
참고
packetData 매개 변수에서 각 패킷의 처음 두 요소는 X와 Y여야 합니다. 각 패킷의 첫 번째와 두 번째 위치에 X와 Y가 각각 지정되어 있지 않으면 ArgumentException이 throw됩니다.
예제
이 예제에서는 임의의 패킷 데이터에서 불규칙한 사인파를 나타내는 스트로크를 만듭니다. 먼저, 이러한 PacketProperty 형식의 TabletPropertyDescription 개체를 사용하여 TabletPropertyDescriptionCollection을 초기화하기 위해 PacketPropertyX 및 Y의 TabletPropertyMetrics를 가져옵니다. 기본 태블릿에서 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에서 지원
참고 항목
참조
TabletPropertyDescriptionCollection.InkToDeviceScaleX