InkAnalyzerBase.UpdateStrokesData-Methode
Aktualisiert die Paketdaten für die angegebenen Striche.
Namespace: System.Windows.Ink.AnalysisCore
Assembly: IACore (in IACore.dll)
Syntax
'Declaration
Public Sub UpdateStrokesData ( _
strokeIds As Integer(), _
strokePacketCounts As Integer(), _
strokesPacketData As Integer(), _
strokesPacketDescription As Guid() _
)
'Usage
Dim instance As InkAnalyzerBase
Dim strokeIds As Integer()
Dim strokePacketCounts As Integer()
Dim strokesPacketData As Integer()
Dim strokesPacketDescription As Guid()
instance.UpdateStrokesData(strokeIds, _
strokePacketCounts, strokesPacketData, _
strokesPacketDescription)
public void UpdateStrokesData(
int[] strokeIds,
int[] strokePacketCounts,
int[] strokesPacketData,
Guid[] strokesPacketDescription
)
public:
void UpdateStrokesData(
array<int>^ strokeIds,
array<int>^ strokePacketCounts,
array<int>^ strokesPacketData,
array<Guid>^ strokesPacketDescription
)
public void UpdateStrokesData(
int[] strokeIds,
int[] strokePacketCounts,
int[] strokesPacketData,
Guid[] strokesPacketDescription
)
public function UpdateStrokesData(
strokeIds : int[],
strokePacketCounts : int[],
strokesPacketData : int[],
strokesPacketDescription : Guid[]
)
Parameter
- strokeIds
Typ: array<System.Int32[]
Ein Array, das die Strichbezeichner enthält.
- strokePacketCounts
Typ: array<System.Int32[]
Ein Array, das die Anzahl der Pakete in den einzelnen Strichen enthält.
- strokesPacketData
Typ: array<System.Int32[]
Ein Array, das die Paketdaten für die Striche enthält.
- strokesPacketDescription
Typ: array<System.Guid[]
Ein Array, das die Eigenschaftenbezeichner für Pakete enthält.
Hinweise
strokePacketData enthält Paketdaten für alle Striche. strokePacketDescription enthält die GUIDs (Globally Unique Identifier), die die Paketdatentypen beschreiben, die für die einzelnen Punkte im Strich enthalten sind. Eine vollständige Liste der verfügbaren Paketeigenschaften finden Sie unter der Microsoft.Ink.PacketProperty-Klasse.
Diese Methode kann Strichdaten nur aktualisieren, wenn alle neuen Strichdaten dieselbe Paketbeschreibung aufweisen.
DirtyRegion des Freihandanalysemoduls wird von dieser Methode nicht aktualisiert.
Wenn ein in strokeIds angegebener Strich nicht dem Freihandanalysemodul zugeordnet ist, ignoriert diese Methode den Bezeichner.
Wenn keiner der in strokeIds angegebenen Striche einen Strich darstellt, der dem Freihandanalysemodul zugeordnet ist, gibt diese Methode einen Wert zurück, ohne dass das Freihandanalysemodul aktualisiert wird.
Diese Methode löst eine System.ArgumentNullException aus, wenn strokeIds gleich nullNULL-Verweis (Nothing in Visual Basic) ist.
Beispiele
Im folgenden Beispiel wird eine Methode UpdateStrokesData definiert, die Strichdaten für ein angegebenes InkAnalyzerBase aktualisiert. Diese Methode wandelt eine Strokes-Auflistung in Paketdaten um und aktualisiert die Strichdaten in der Freihandanalyse. In der Praxis bedeutet dies, wenn die Anwendung ein Microsoft.Ink.Ink-Objekt zum Speichern von Strichdaten verwendet, sollte sie die abgeleitete Microsoft.Ink.InkAnalyzer-Klasse verwenden.
''' <summary>
''' Updates the packet data for the specified strokes of an InkAnalyzerBase.
''' </summary>
''' <param name="baseInkAnalyzer">
''' The analyzer that receives the strokes.</param>
''' <param name="theStrokes">
''' The strokes for which to update the stroke data.</param>
''' <remarks>
''' This method converts stroke data to packet data for example only.
''' The InkAnalyzerBase is used when your application is handling packet
''' data. If your application uses stroke data from an Ink object, then
''' you would use InkAnalyzer.
''' </remarks>
Public Shared Sub MyUpdateStrokesData( _
ByVal baseInkAnalyzer As System.Windows.Ink.AnalysisCore.InkAnalyzerBase, _
ByVal theStrokes As Microsoft.Ink.Strokes)
' Check that the parameters are valid
If Nothing Is baseInkAnalyzer Then
Throw New ArgumentNullException("baseInkAnalyzer")
End If
If Nothing Is theStrokes Then
Throw New ArgumentNullException("theStrokes")
End If
If 0 = theStrokes.Count Then
Throw New ArgumentException("Empty strokes collection.")
End If
' Only strokes that have the same packet description GUIDs
' can be added in one call to InkAnalyzerBase.AddStrokes.
Dim thePacketDescription As Guid() = theStrokes(0).PacketDescription
' Accumulate the stroke data in collections.
Dim theStrokeIdentifiers As New ArrayList()
Dim thePacketCounts As New ArrayList()
Dim thePacketData As New ArrayList()
Dim aStroke As Microsoft.Ink.Stroke
For Each aStroke In theStrokes
If Not InkAnalyzerHelper.AreElementwiseEquivalent( _
aStroke.PacketDescription, thePacketDescription) Then
Throw New ApplicationException( _
"The strokes collection contains strokes with" + _
"different packet descriptions.")
End If
' Add the stroke data to the collections.
theStrokeIdentifiers.Add(aStroke.Id)
thePacketCounts.Add(aStroke.PacketCount)
thePacketData.AddRange(aStroke.GetPacketData())
Next aStroke
' Update the stroke data for the base layer ink analyzer.
baseInkAnalyzer.UpdateStrokesData( _
DirectCast(theStrokeIdentifiers.ToArray(GetType(Integer)), Integer()), _
DirectCast(thePacketCounts.ToArray(GetType(Integer)), Integer()), _
DirectCast(thePacketData.ToArray(GetType(Integer)), Integer()), _
thePacketDescription)
End Sub 'UpdateStrokesData '
/// <summary>
/// Updates the packet data for the specified strokes of an InkAnalyzerBase.
/// </summary>
/// <param name="baseInkAnalyzer">
/// The analyzer that receives the strokes.</param>
/// <param name="theStrokes">
/// The strokes for which to update the stroke data.</param>
/// <remarks>
/// This method converts stroke data to packet data for example only.
/// The InkAnalyzerBase is used when your application is handling packet
/// data. If your application uses stroke data from an Ink object, then
/// you would use InkAnalyzer.
/// </remarks>
public static void MyUpdateStrokesData(
System.Windows.Ink.AnalysisCore.InkAnalyzerBase baseInkAnalyzer,
Microsoft.Ink.Strokes theStrokes)
{
// Check that the parameters are valid
if (null == baseInkAnalyzer)
{
throw new ArgumentNullException("baseInkAnalyzer");
}
if (null == theStrokes)
{
throw new ArgumentNullException("theStrokes");
}
if (0 == theStrokes.Count)
{
throw new ArgumentException("Empty strokes collection.");
}
// Only strokes that have the same packet description GUIDs
// can be added in one call to InkAnalyzerBase.AddStrokes.
Guid[] thePacketDescription = theStrokes[0].PacketDescription;
// Accumulate the stroke data in collections.
ArrayList theStrokeIdentifiers = new ArrayList();
ArrayList thePacketCounts = new ArrayList();
ArrayList thePacketData = new ArrayList();
foreach (Microsoft.Ink.Stroke aStroke in theStrokes)
{
if (!InkAnalyzerHelper.AreElementwiseEquivalent(
aStroke.PacketDescription, thePacketDescription))
{
throw new ApplicationException(
"The strokes collection contains strokes with" +
"different packet descriptions.");
}
// Add the stroke data to the collections.
theStrokeIdentifiers.Add(aStroke.Id);
thePacketCounts.Add(aStroke.PacketCount);
thePacketData.AddRange(aStroke.GetPacketData());
}
// Update the stroke data for the base layer ink analyzer.
baseInkAnalyzer.UpdateStrokesData(
theStrokeIdentifiers.ToArray(typeof(int)) as int[],
thePacketCounts.ToArray(typeof(int)) as int[],
thePacketData.ToArray(typeof(int)) as int[],
thePacketDescription);
}
Plattformen
Windows Vista, Windows XP SP2, Windows Server 2003
.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
System.Windows.Ink.AnalysisCore-Namespace
InkAnalyzerBase.ClearStrokeData