RecognitionAlternate.GetPropertyValue 方法
返回 RecognitionAlternate 对象的指定 RecognitionProperty 的值。
命名空间: Microsoft.Ink
程序集: Microsoft.Ink(在 Microsoft.Ink.dll 中)
语法
声明
Public Function GetPropertyValue ( _
g As Guid _
) As Byte()
用法
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[]
参数
- g
类型:System.Guid
要返回的备选项的属性,作为 RecognitionProperty 对象的一个字段的全局唯一标识符 (GUID)。
返回值
类型:array<System.Byte[]
以字节数组的形式返回属性类型的值。对每个属性类型的返回值的解释各不相同。
备注
使用此方法可以获取在 RecognitionAlternate 对象上没有相应帮助器属性的 RecognitionProperty 对象的属性值。RecognitionAlternate 对象的帮助器属性包括 Confidence 和 LineNumber 属性。
下表描述在字节数组中返回的值的类型。
RecognitionProperty 类型 |
说明 |
---|---|
ConfidenceLevel |
|
HotPoint |
Point 对象 |
LineMetrics |
等效于 LATTICE_METRICS Structure 结构 |
LineNumber |
Int32 值 |
MaximumStrokeCount |
未使用 |
PointsPerInch |
未使用 |
Segmentation |
未使用。请改用 AlternatesWithConstantPropertyValues 方法。 |
若要了解备选项 公开哪些 Recognizer 属性,请首先使用 SupportedProperties 属性查看哪些属性可能可用。这些属性可能会也可能不会传递到 RecognitionAlternate。然后,使用 GetPropertyValue 确定 RecognitionAlternate 公开哪些属性。
备注
并非所有 Recognizer 属性都会传递到 RecognitionAlternate 对象。例如,Microsoft(R) 笔势识别器公开只能通过 SupportedProperties 属性查询的 HotPoint。RecognitionAlternate 不公开 HotPoint 属性。
示例
此 C# 示例显示在 Strokes 集合的识别中使用的基线。GetPropertyValue 方法从最佳备选项获取行规格。然后,使用附加到 InkOverlay 对象 theInkOverlay 的 Renderer 对象将墨迹空间 坐标转换为像素坐标。最后,以绿色绘制基线。此示例假定您已经检查了 SupportedProperties 属性,确信 LineMetrics 属性是受支持的。
[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();
}
}
此 Microsoft Visual Basic(R) .NET 示例显示在 Strokes 集合的识别中使用的基线。GetPropertyValue 方法从最佳备选项获取行规格。然后,使用附加到 InkOverlay 对象 theInkOverlay 的 Renderer 对象将墨迹空间 坐标转换为像素坐标。最后,以绿色绘制基线。此示例假定您已经检查了 SupportedProperties 属性,确信 LineMetrics 属性是受支持的。
[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
平台
Windows Vista
.NET Framework 和 .NET Compact Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。
版本信息
.NET Framework
受以下版本支持:3.0