InkAnalyzerBase 类

提供对布局分析、书写和绘制分类以及手写识别的访问。

命名空间:  System.Windows.Ink.AnalysisCore
程序集:  IACore(在 IACore.dll 中)

语法

声明
Public Class InkAnalyzerBase _
    Implements IDisposable
用法
Dim instance As InkAnalyzerBase
public class InkAnalyzerBase : IDisposable
public ref class InkAnalyzerBase : IDisposable
public class InkAnalyzerBase implements IDisposable
public class InkAnalyzerBase implements IDisposable

备注

InkAnalyzerBase 使用笔画数据包数据分析墨迹,而不直接与墨迹或笔画对象进行交互。

警告

若要避免内存泄漏,必须在已附加事件处理程序的任何 InkAnalyzerBase 对象超时之前,对该对象显式调用 Dispose 方法。

若为了分析要在 InkAnalyzerBase 中添加或移除笔画,请使用 AddStrokeAddStrokesRemoveStrokeRemoveStrokes 方法。这些方法更新 DirtyRegion 属性,该属性是下一分析操作要分析的笔画的区域。

若要分析墨迹,请使用 AnalyzeBackgroundAnalyze 方法。在分析过程中,InkAnalyzerBase 执行布局分析、笔画分类和手写识别。

在分析过程中,InkAnalyzerBase 会引发很多事件,包括在创建分析器的线程上进行后台分析的过程中生成的事件。许多 InkAnalyzerBase 事件都支持 InkAnalyzerBase 的数据代理功能。有关更多信息,请参见Data Proxy with Ink Analysis

若要从事件处理程序内部停止分析过程,请调用 Abort 方法。

若要修改墨迹分析器用于识别手写内容的语言,请使用 SetStrokeLanguageIdSetStrokesLanguageId。若要修改墨迹分析器对特定笔画的分类方式,请使用 SetStrokeTypeSetStrokesType

InkAnalyzerBase 加载所有已安装的墨迹识别器。GetInkRecognizersByPriority 方法返回包含每个可用 InkRecognizerBaseInkRecognizerBaseCollection。如果有多个墨迹识别器支持特定语言,可使用 SetHighestPriorityInkRecognizer(InkRecognizer) 设置使用哪个墨迹识别器处理该语言的笔画。

通过向墨迹分析器提供额外上下文,分析提示可以提高识别准确度。额外上下文信息可以帮助墨迹分析器减少备选识别结果的数目。例如,通过定义智能标记、目标单词或以规则的形式在识别参考线中输入。有关向墨迹分析器提供上下文的更多信息,请参见

CreateAnalysisHintDeleteAnalysisHintGetAnalysisHints

墨迹分析器以字符串或 ContextNodeBase 对象树的形式表示分析结果。若要访问已识别的字符串,请使用 GetRecognizedString。若要访问树的根,请使用 RootNode 属性。墨迹分析器的以下方法可用于查找特定上下文节点或文本。

若要使用备选分析结果,请使用 GetAlternatesModifyTopAlternate

若要保存分析结果,请使用 SaveResults。若要加载保存的结果,请使用 Load

有关使用 InkAnalyzerBase 分析墨迹的更多信息,请参见Ink Analysis Overview

示例

此示例初始化一个新的 InkAnalyzerBase (theInkAnalyzerBase)。然后设置 AnalysisModes 属性并附加 UpdateStrokesCacheBase 事件处理程序。

' Create the ink analyzer and enable automatic reconciliation and
' automatic stroke cache cleanup, but not intermediate results.
Dim theInkAnalyzerBase As New System.Windows.Ink.AnalysisCore.InkAnalyzerBase()
theInkAnalyzerBase.AnalysisModes = _
    System.Windows.Ink.AnalysisCore.AnalysisModes.AutomaticReconciliationEnabled _
    Or System.Windows.Ink.AnalysisCore.AnalysisModes.StrokeCacheAutoCleanupEnabled

' Since automatic stroke cache cleanup is enabled, add an event
' handler for the UpdateStrokesCacheBase event.
AddHandler theInkAnalyzerBase.UpdateStrokesCacheBase, _
    AddressOf theInkAnalyzerBase_UpdateStrokesCacheBase
// Create the ink analyzer and enable automatic reconciliation and
// automatic stroke cache cleanup, but not intermediate results.
System.Windows.Ink.AnalysisCore.InkAnalyzerBase theInkAnalyzerBase =
    new System.Windows.Ink.AnalysisCore.InkAnalyzerBase();
theInkAnalyzerBase.AnalysisModes =
    System.Windows.Ink.AnalysisCore.AnalysisModes.AutomaticReconciliationEnabled
    | System.Windows.Ink.AnalysisCore.AnalysisModes.StrokeCacheAutoCleanupEnabled;

// Since automatic stroke cache cleanup is enabled, add an event
// handler for the UpdateStrokesCacheBase event.
theInkAnalyzerBase.UpdateStrokesCacheBase +=
    new System.Windows.Ink.AnalysisCore.UpdateStrokesCacheBaseEventHandler(
        theInkAnalyzerBase_UpdateStrokesCacheBase);

继承层次结构

System.Object
  System.Windows.Ink.AnalysisCore.InkAnalyzerBase

线程安全

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

平台

Windows Vista, Windows XP SP2, Windows Server 2003

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

版本信息

.NET Framework

受以下版本支持:3.0

另请参见

参考

InkAnalyzerBase 成员

System.Windows.Ink.AnalysisCore 命名空间

System.Windows.Ink.AnalysisCore.AnalysisAlternateBase

System.Windows.Ink.AnalysisCore.AnalysisStatusBase

System.Windows.Ink.AnalysisCore.ContextLinkBase

System.Windows.Ink.AnalysisCore.ContextNodeBase