RecognitionAlternate.GetPropertyValue, méthode
Mise à jour : November 2007
Retourne la valeur d'un RecognitionProperty spécifié de l'objet RecognitionAlternate.
Espace de noms : Microsoft.Ink
Assembly : Microsoft.Ink (dans Microsoft.Ink.dll)
Syntaxe
'Déclaration
Public Function GetPropertyValue ( _
g As Guid _
) As Byte()
'Utilisation
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[]
Paramètres
- g
Type : System.Guid
Propriété de la proposition de substitution à retourner, sous forme d'identificateur global unique (GUID) pour l'un des champs sur l'objet RecognitionProperty.
Valeur de retour
Type : array<System.Byte[]
Retourne la valeur du type de propriété sous forme de tableau d'octets. La valeur de retour est interprétée différemment pour chaque type de propriété.
Notes
Utilisez cette méthode pour obtenir des valeurs de propriété pour les objets RecognitionProperty qui n'ont aucune propriété d'assistance correspondante sur l'objet RecognitionAlternate. Les propriétés d'assistance sur l'objet RecognitionAlternate incluent Confidence et LineNumber.
Le tableau suivant décrit le type de valeur retourné dans le tableau d'octets.
Type de RecognitionProperty |
Description |
---|---|
ConfidenceLevel |
Valeur d'énumération RecognitionConfidence |
HotPoint |
Objet Point (page pouvant être en anglais) |
LineMetrics |
Équivalent à la structure LATTICE_METRICS Structure |
LineNumber |
Valeur Int32 (page pouvant être en anglais) |
MaximumStrokeCount |
Non utilisé |
PointsPerInch |
Non utilisé |
Segmentation |
Non utilisé. Utilisez plutôt la méthode AlternatesWithConstantPropertyValues. |
Pour déterminer quelles propriétés Recognizer sont exposées sur la proposition de substitution, utilisez d'abord la propriété SupportedProperties afin d'identifier les propriétés potentiellement disponibles. Ces propriétés peuvent être passées ou non au RecognitionAlternate. Utilisez ensuite GetPropertyValue pour déterminer les propriétés qui sont exposées sur le RecognitionAlternate.
Remarque : |
---|
Certaines propriétés Recognizer ne sont pas passées à l'objet RecognitionAlternate. Par exemple, la reconnaissance de mouvements Microsoft® expose HotPoint, que vous pouvez interroger uniquement via la propriété SupportedProperties. La propriété HotPoint n'est pas exposée sur un RecognitionAlternate. |
Exemples
Cet exemple C# affiche la ligne de base utilisée dans la reconnaissance d'une collection Strokes. La méthode GetPropertyValue obtient les métriques de ligne de la meilleure proposition de substitution. L'objet Renderer attaché à un InkOverlay, theInkOverlay, est ensuite utilisé pour convertir les coordonnées d'espace d'entrée manuscrite en coordonnées en pixels. Enfin, la ligne de base est dessinée en vert. Cet exemple suppose que vous avez déjà vérifié la propriété SupportedProperties pour vous assurer que la propriété LineMetrics est prise en charge.
[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();
}
}
Cet exemple Microsoft Visual Basic® .NET affiche la ligne de base utilisée dans la reconnaissance d'une collection Strokes. La méthode GetPropertyValue obtient les métriques de ligne de la meilleure proposition de substitution. L'objet Renderer attaché à un InkOverlay, theInkOverlay, est ensuite utilisé pour convertir les coordonnées d'espace d'entrée manuscrite en coordonnées en pixels. Enfin, la ligne de base est dessinée en vert. Cet exemple suppose que vous avez déjà vérifié la propriété SupportedProperties pour vous assurer que la propriété LineMetrics est prise en charge.
[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
Plateformes
Windows Vista
Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Informations de version
.NET Framework
Pris en charge dans : 3.0