Condividi tramite


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

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

Vedere anche

Riferimenti

RecognitionAlternate Classe

Membri RecognitionAlternate

Spazio dei nomi Microsoft.Ink

RecognitionAlternate.AlternatesWithConstantPropertyValues

RecognitionProperty