RecognizerGuide 结构

表示 Recognizer 对象用来绘制墨迹 的区域。该区域称为识别器参考线

命名空间:  Microsoft.Ink
程序集:  Microsoft.Ink(在 Microsoft.Ink.dll 中)

语法

声明
Public Structure RecognizerGuide
用法
Dim instance As RecognizerGuide
public struct RecognizerGuide
public value class RecognizerGuide
public final class RecognizerGuide extends ValueType
JScript 支持使用结构,但是不支持新结构的声明。

备注

识别器参考线可由行和列组成,它为识别器提供了更好的上下文来执行识别。例如,您可以在用户的屏幕上绘制一些水平线条(差不多类似于刻度纸),以显示墨迹应出现的位置(这一类型的参考线仅由行组成,而没有列)。如果用户在这些线条上而不是在任意空白处书写,可提高识别的准确度。有关识别器参考线的说明,请参见Ink Recognition

如果使用参考线为墨迹提供上下文,则可以更容易地识别诸如“t”和“I”这样的字母。

参考线以墨迹空间 坐标指定墨迹边界。DrawnBox 属性可以定义一个框,其大小等于或小于 WritingBox 属性所定义的框。这样可使用不同的书写样式。如果用户在 DrawnBox 之外但在 WritingBox 之内书写,则 Recognizer 对象使用所有墨迹来帮助进行识别。

如果应用程序已在用户将书写的屏幕上绘制参考线,则应用程序应设置识别器参考线的属性值,以便通知识别器。这些属性仅供识别器使用。设置这些属性的操作本身不会在屏幕上绘制可见线条,而应由应用程序或控件绘制可见线条。

除了在屏幕上绘制用于表明用户书写位置的线条或标尺之外,还可以绘制用于书写字符或单词的单元格。这称为框式输入,对于某些东亚语言,这种方式很有用。若要确定识别器是否支持框式输入,请调用 Recognizer 对象的 Capabilities 属性。

默认情况下,没有任何参考线。默认参考线的所有属性值都设置为 0。必须使用此对象的属性才能设置参考线。

示例

此示例实例化 RecognizerContext 对象,并通过创建一个新 RecognizerGuide 对象为 Guide 属性分配值。

' create a new RecognizerContext object
mRecognizerContext = New RecognizerContext()
' if the Recognizer supports LinedInput, set the Guide
If (mRecognizerContext.Recognizer.Capabilities And RecognizerCapabilities.LinedInput) <> 0 Then
    ' get the lower right corner in pixel units
    Dim lowerRight As Point = New Point(mInkOverlay.AttachedControl.Width, mInkOverlay.AttachedControl.Height)
    ' convert to ink space units
    mInkOverlay.Renderer.PixelToInkSpace(Me.CreateGraphics(), lowerRight)
    ' create Rectangles
    Dim writingBox As Rectangle = New Rectangle(0, 0, lowerRight.X, lowerRight.Y)
    Dim drawnBox As Rectangle = New Rectangle(0, 0, lowerRight.X, lowerRight.Y)
    ' shrink drawn box relative to writing box
    drawnBox.Inflate(-100, -100)
    ' create Guide with 8 rows, zero columns, and no midline
    Dim guide As RecognizerGuide = New RecognizerGuide(8, 0, 0, writingBox, drawnBox)
    mRecognizerContext.Guide = guide
End If
// create a new RecognizerContext object
mRecognizerContext = new RecognizerContext();
// if the Recognizer supports LinedInput, set the Guide
if ((mRecognizerContext.Recognizer.Capabilities & RecognizerCapabilities.LinedInput) != 0)
{
    // get the lower right corner in pixel units
    Point lowerRight = new Point(mInkOverlay.AttachedControl.Width, mInkOverlay.AttachedControl.Height);
    // convert to ink space units
    mInkOverlay.Renderer.PixelToInkSpace(this.CreateGraphics(), ref lowerRight);
    // create Rectangles
    Rectangle writingBox = new Rectangle(0, 0, lowerRight.X, lowerRight.Y);
    Rectangle drawnBox = new Rectangle(0, 0, lowerRight.X, lowerRight.Y);
    // shrink drawn box relative to writing box
    drawnBox.Inflate(-100, -100);
    // create Guide with 8 rows, zero columns, and no midline
    RecognizerGuide guide = new RecognizerGuide(8, 0, 0, writingBox, drawnBox);
    mRecognizerContext.Guide = guide;
}

线程安全

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

平台

Windows Vista

.NET Framework 和 .NET Compact Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求

版本信息

.NET Framework

受以下版本支持:3.0

另请参见

参考

RecognizerGuide 成员

Microsoft.Ink 命名空间

Recognizer

RecognizerContext