InkAnalyzer 类
提供对布局分析、书写和绘制分类以及手写识别的访问。
命名空间: Microsoft.Ink
程序集: Microsoft.Ink.Analysis(在 Microsoft.Ink.Analysis.dll 中)
语法
声明
Public Class InkAnalyzer _
Implements IDisposable
用法
Dim instance As InkAnalyzer
public class InkAnalyzer : IDisposable
public ref class InkAnalyzer : IDisposable
public class InkAnalyzer implements IDisposable
public class InkAnalyzer implements IDisposable
备注
若要向用于分析的 InkAnalyzer 添加笔画或从中移除笔画,请使用 AddStroke、AddStrokes、InkAnalyzer.RemoveStroke 或 RemoveStrokes 方法。这些方法更新 DirtyRegion 属性,该属性是下一分析操作要分析的笔画的区域。
若要分析墨迹,请使用 Analyze 或 BackgroundAnalyze 方法。在分析过程中,InkAnalyzer 执行布局分析、笔画分类和手写识别。
在分析过程中,InkAnalyzer 将引发一些事件。设置 SynchronizingObject 属性可以指定 InkAnalyzer 在哪个线程上引发后台分析过程中生成的事件。许多 InkAnalyzer 事件都支持 InkAnalyzer 的数据代理功能。有关更多信息,请参见Data Proxy with Ink Analysis。
若要从事件处理程序内部停止分析进程,请调用 Abort 方法。
若要修改墨迹分析器用于识别手写的语言,请使用 InkAnalyzer.SetStrokeLanguageId 或 InkAnalyzer.SetStrokesLanguageId。若要修改墨迹分析器对特定笔画的分类方式,请使用 InkAnalyzer.SetStrokeType 或 InkAnalyzer.SetStrokesType。
InkAnalyzer 加载所有已安装的墨迹识别器。GetInkRecognizersByPriority 方法获取包含每个可用 InkRecognizer 的 InkRecognizerCollection。如果有多个墨迹识别器支持特定语言,可使用 SetAsHighestPriorityInkRecognizer 设置使用哪个墨迹识别器处理该语言的笔画。
有关为墨迹分析操作提供上下文的更多信息,请参见 CreateAnalysisHint、DeleteAnalysisHint 和 GetAnalysisHints。
墨迹分析器以字符串或 ContextNode 对象树的形式表示分析结果。若要访问已识别的字符串,请使用 GetRecognizedString。若要访问树的根,请使用 RootNode 属性。墨迹分析器的以下方法可用于查找特定上下文节点或文本。
若要处理备选的分析结果,请使用 GetAlternates 和 ModifyTopAlternate。
若要保存分析结果,请使用 SaveResults。若要加载保存的结果,请使用 Load。
有关使用 InkAnalyzer 分析墨迹的更多信息,请参见Ink Analysis Overview。
必须在已附加事件处理程序的任何 InkAnalyzer 对象超出范围之前,对该对象显式调用 Dispose 方法。
示例
此示例执行以下操作。
初始化新的 Microsoft.Ink.Ink 对象 theInk。
将 Ink.InkAdded 事件处理程序 theInk_InkAdded 附加到 theInk。
初始化新的 InkAnalyzer (theInkAnalyzer),它可以分析来自 theInk 的笔画数据。
' Create the Ink for use with the InkCollector and attach
' event handlers.
Me.theInk = New Microsoft.Ink.Ink()
AddHandler Me.theInk.InkAdded, AddressOf theInk_InkAdded
' Create the InkAnalyzer.
Me.theInkAnalyzer = New Microsoft.Ink.InkAnalyzer(Me.theInk, Me)
// Create the Ink for use with the InkCollector and attach
// event handlers.
this.theInk = new Microsoft.Ink.Ink();
this.theInk.InkAdded +=
new Microsoft.Ink.StrokesEventHandler(theInk_InkAdded);
// Create the InkAnalyzer.
this.theInkAnalyzer =
new Microsoft.Ink.InkAnalyzer(this.theInk, this);
在此示例中,theInk_InkAdded 事件处理程序随后获取已添加到 theInk 的笔画,并将这些笔画添加到 theInkAnalyzer。
''' <summary>
''' The ink's InkAdded event handler.
''' </summary>
''' <param name="sender">The source of the event.</param>
''' <param name="e">The event data.</param>
Sub theInk_InkAdded( _
ByVal sender As Object, ByVal e As Microsoft.Ink.StrokesEventArgs)
' This event handler is attached to an Ink object.
Dim theInk As Microsoft.Ink.Ink = DirectCast(sender, Microsoft.Ink.Ink)
' Add the new strokes to the InkAnalyzer.
Me.theInkAnalyzer.AddStrokes(theInk.CreateStrokes(e.StrokeIds))
End Sub 'theInk_InkAdded
/// <summary>
/// The ink's InkAdded event handler.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The event data.</param>
void theInk_InkAdded(object sender, Microsoft.Ink.StrokesEventArgs e)
{
// This event handler is attached to an Ink object.
Microsoft.Ink.Ink theInk = sender as Microsoft.Ink.Ink;
// Add the new strokes to the InkAnalyzer.
this.theInkAnalyzer.AddStrokes(theInk.CreateStrokes(e.StrokeIds));
}
继承层次结构
System.Object
Microsoft.Ink.InkAnalyzer
线程安全
此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。
平台
Windows Vista
.NET Framework 和 .NET Compact Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。
版本信息
.NET Framework
受以下版本支持:3.0
另请参见
参考
Microsoft.Ink.AnalysisAlternate