Metodo RecognitionAlternate.GetPropertyValue
Aggiornamento: novembre 2007
Restituisce il valore di un oggetto RecognitionProperty specificato dell'oggetto RecognitionAlternate.
Spazio dei nomi: Microsoft.Ink
Assembly: Microsoft.Ink (in Microsoft.Ink.dll)
Sintassi
'Dichiarazione
Public Function GetPropertyValue ( _
g As Guid _
) As Byte()
'Utilizzo
Dim instance As RecognitionAlternate
Dim g As Guid
Dim returnValue As Byte()
returnValue = instance.GetPropertyValue(g)
public byte[] GetPropertyValue(
Guid g
)
public:
array<unsigned char>^ GetPropertyValue(
Guid g
)
public byte[] GetPropertyValue(
Guid g
)
public function GetPropertyValue(
g : Guid
) : byte[]
Parametri
- g
Tipo: System.Guid
Proprietà dell'alternativa da restituire, in forma di GUID per uno dei campi nell'oggetto RecognitionProperty.
Valore restituito
Tipo: array<System.Byte[]
Restituisce il valore del tipo di proprietà sotto forma di una matrice di byte. Il valore restituito viene interpretato in modo diverso per ogni tipo di proprietà.
Note
Utilizzare questo metodo per ottenere i valori della proprietà per oggetti RecognitionProperty che non dispongono di alcuna proprietà di supporto corrispondente nell'oggetto RecognitionAlternate. Le proprietà di supporto nell'oggetto RecognitionAlternate includono le proprietà Confidence e LineNumber.
Nella tabella riportata di seguito viene descritto il tipo di valore restituito nella matrice di byte.
Tipo RecognitionProperty |
Descrizione |
---|---|
ConfidenceLevel |
Valore di enumerazione RecognitionConfidence |
HotPoint |
Oggetto Point |
LineMetrics |
Equivalente alla struttura LATTICE_METRICS Structure |
LineNumber |
Valore Int32 |
MaximumStrokeCount |
Non utilizzato |
PointsPerInch |
Non utilizzato |
Segmentation |
Non utilizzato. In sostituzione, utilizzare il metodo AlternatesWithConstantPropertyValues. |
Per conoscere le proprietà Recognizer esposte nell'alternativa, utilizzare per prima la proprietà SupportedProperties per vedere quali sono le proprietà potenzialmente disponibili. Queste proprietà possono essere eventualmente passate all'oggetto RecognitionAlternate. Utilizzare quindi GetPropertyValue per determinare quali proprietà sono esposte nell'oggetto RecognitionAlternate.
Nota
Non tutte le proprietà Recognizer vengono passate all'oggetto RecognitionAlternate. Ad esempio, il Riconoscimento movimenti Microsoft® espone l'oggetto HotPoint sul quale può essere eseguita una query solo tramite la proprietà SupportedProperties. La proprietà HotPoint non viene esposta in un oggetto RecognitionAlternate.
Esempi
In questo esempio di C# viene visualizzata la linea di base utilizzata nel riconoscimento di un insieme Strokes. Il metodo GetPropertyValue ottiene la metrica delle righe dalla prima alternativa. L'oggetto Renderer associato a un oggetto InkOverlay, theInkOverlay viene utilizzato per convertire le coordinate dello spazio di input penna in coordinate pixel. Infine, la linea di base viene disegnata in verde. In questo esempio si presuppone che la proprietà SupportedProperties sia già stata controllata per assicurarsi che la proprietà LineMetrics sia supportata.
[C#]
using Microsoft.Ink;
using System.Drawing.Drawing2D;
using System.IO;
//...
private void DrawBaseline(Strokes theStrokes)
{
// Get the top alternate for all the strokes
RecognizerContext context = new RecognizerContext();
context.Strokes = theStrokes;
RecognitionStatus status = new RecognitionStatus();
RecognitionResult result = context.Recognize(out status);
RecognitionAlternate topAlternate = result.TopAlternate;
// Get the line metrics from the top alternate
byte [] byteArray = topAlternate.GetPropertyValue(RecognitionProperty.LineMetrics);
using (MemoryStream stream = new MemoryStream(byteArray))
using (BinaryReader reader = new BinaryReader(stream))
{
int startX = reader.ReadInt32();
int startY = reader.ReadInt32();
int endX = reader.ReadInt32();
int endY = reader.ReadInt32();
// Convert baseline to pixel coordinates
Graphics tempGraphics = CreateGraphics();
Point startPoint = new Point(startX, startY);
Point endPoint = new Point(endX, endY);
theInkOverlay.Renderer.InkSpaceToPixel(tempGraphics, ref startPoint);
theInkOverlay.Renderer.InkSpaceToPixel(tempGraphics, ref endPoint);
tempGraphics.DrawLine(new Pen(Color.Green), startPoint, endPoint);
// Dispose of temporary graphics
tempGraphics.Dispose();
}
}
In questo esempio di Microsoft Visual Basic® .NET viene visualizzata la linea di base utilizzata nel riconoscimento di un insieme Strokes. Il metodo GetPropertyValue ottiene la metrica delle righe dalla prima alternativa. L'oggetto Renderer associato a un oggetto InkOverlay, theInkOverlay viene utilizzato per convertire le coordinate dello spazio di input penna in coordinate pixel. Infine, la linea di base viene disegnata in verde. In questo esempio si presuppone che la proprietà SupportedProperties sia già stata controllata per assicurarsi che la proprietà LineMetrics sia supportata.
[Visual Basic]
Imports Microsoft.Ink
Imports System.Drawing.Drawing2D
Imports System.IO
'...
Private Sub DrawBaseline(ByVal theStrokes As Strokes)
' Get the top alternate for all the strokes
Dim context As New RecognizerContext()
context.Strokes = theStrokes
Dim status As New RecognitionStatus()
Dim result As RecognitionResult = context.Recognize(status)
Dim topAlternate As RecognitionAlternate = result.TopAlternate
' Get the line metrics from the top alternate
Dim byteArray() As Byte = topAlternate.GetPropertyValue(RecognitionProperty.LineMetrics)
Dim stream As New MemoryStream(byteArray)
Dim reader As New BinaryReader(stream)
Dim startX As Integer = reader.ReadInt32()
Dim startY As Integer = reader.ReadInt32()
Dim endX As Integer = reader.ReadInt32()
Dim endY As Integer = reader.ReadInt32()
' Convert baseline to pixel coordinates
Dim tempGraphics As Graphics = CreateGraphics()
Dim startPoint As New Point(startX, startY)
Dim endPoint As New Point(endX, endY)
theInkOverlay.Renderer.InkSpaceToPixel(tempGraphics, startPoint)
theInkOverlay.Renderer.InkSpaceToPixel(tempGraphics, endPoint)
tempGraphics.DrawLine(New Pen(Color.Green), startPoint, endPoint)
' Clean up
tempGraphics.Dispose()
reader.Close()
stream.Close()
End Sub
Piattaforme
Windows Vista
.NET Framework e .NET Compact Framework non supportano tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.
Informazioni sulla versione
.NET Framework
Supportato in: 3.0