Freigeben über


RecognitionAlternate.GetPropertyValue-Methode

Gibt den Wert einer angegebenen RecognitionProperty des RecognitionAlternate-Objekts zurück.

Namespace:  Microsoft.Ink
Assembly:  Microsoft.Ink (in Microsoft.Ink.dll)

Syntax

'Declaration
Public Function GetPropertyValue ( _
    g As Guid _
) As Byte()
'Usage
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[]

Parameter

  • g
    Typ: System.Guid
    Die Eigenschaft der zurückzugebenden Alternative als GUID (Globally Unique Identifier) für eines der Felder des RecognitionProperty-Objekts.

Rückgabewert

Typ: array<System.Byte[]
Gibt den Wert des Eigenschaftentyps in Form eines Bytearrays zurück. Der Rückgabewert wird für jeden Eigenschaftentyp anders interpretiert.

Hinweise

Verwenden Sie diese Methode zum Abrufen von Eigenschaftswerten für RecognitionProperty-Objekte, die keine entsprechende Hilfseigenschaft für das RecognitionAlternate-Objekt besitzen. Zu den Hilfseigenschaften für das RecognitionAlternate-Objekt gehören die Confidence-Eigenschaft und die LineNumber-Eigenschaft.

In der folgenden Tabelle wird der Typ des Werts beschrieben, der im Bytearray zurückgegeben wird.

RecognitionProperty-Typ

Beschreibung

ConfidenceLevel

RecognitionConfidence-Enumerationswert

HotPoint

Point-Objekt

LineMetrics

Entsprechung zur LATTICE_METRICS Structure-Struktur.

LineNumber

Int32-Wert

MaximumStrokeCount

Nicht in Verwendung

PointsPerInch

Nicht in Verwendung

Segmentation

Wird nicht verwendet. Verwenden Sie stattdessen die AlternatesWithConstantPropertyValues-Methode.

Um zu erfahren, welche Recognizer-Eigenschaften für die Alternative verfügbar gemacht werden, stellen Sie zunächst mit der SupportedProperties-Eigenschaft fest, welche Eigenschaften potenziell verfügbar sind. Diese Eigenschaften können oder können nicht an RecognitionAlternate übergeben werden. Stellen Sie anschließend mit GetPropertyValue fest, welche Eigenschaften für RecognitionAlternate verfügbar gemacht werden.

Hinweis

Nicht alle Recognizer-Eigenschaften werden an das RecognitionAlternate-Objekt übergeben. Die Microsoft®-Stiftbewegungserkennung zum Beispiel macht HotPoint verfügbar, der nur über die SupportedProperties-Eigenschaft abgefragt werden kann. Die HotPoint-Eigenschaft wird für eine RecognitionAlternate nicht verfügbar gemacht.

Beispiele

In diesem C#-Beispiel wird die bei der Erkennung einer Strokes-Auflistung verwendete Grundlinie angezeigt. Die GetPropertyValue-Methode ruft die Zeilenmetrik aus der ersten Alternative ab. Anschließend wird das Renderer-Objekt, das an ein InkOverlay mit dem Namen theInkOverlay angefügt ist, zum Konvertieren der Freihandbereichkoordinaten in Pixelkoordinaten verwendet. Schließlich wird die Grundlinie grün gezeichnet. In diesem Beispiel wird davon ausgegangen, dass Sie die SupportedProperties-Eigenschaft bereits überprüft haben, um sicherzustellen, dass die LineMetrics-Eigenschaft unterstützt wird.

[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();
        }
    }

Dieses Microsoft Visual Basic® .NET-Beispiel zeigt die bei der Erkennung einer Strokes-Auflistung verwendete Grundlinie an. Die GetPropertyValue-Methode ruft die Zeilenmetrik aus der ersten Alternative ab. Anschließend wird das Renderer-Objekt, das an ein InkOverlay mit dem Namen theInkOverlay angefügt ist, zum Konvertieren der Freihandbereichkoordinaten in Pixelkoordinaten verwendet. Schließlich wird die Grundlinie grün gezeichnet. In diesem Beispiel wird davon ausgegangen, dass Sie die SupportedProperties-Eigenschaft bereits überprüft haben, um sicherzustellen, dass die LineMetrics-Eigenschaft unterstützt wird.

[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

Plattformen

Windows Vista

.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

RecognitionAlternate-Klasse

RecognitionAlternate-Member

Microsoft.Ink-Namespace

RecognitionAlternate.AlternatesWithConstantPropertyValues

RecognitionProperty