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 中添加或移除笔画,请使用 AddStroke、AddStrokes、RemoveStroke 或 RemoveStrokes 方法。这些方法更新 DirtyRegion 属性,该属性是下一分析操作要分析的笔画的区域。
若要分析墨迹,请使用 Analyze 或 BackgroundAnalyze 方法。在分析过程中,InkAnalyzerBase 执行布局分析、笔画分类和手写识别。
在分析过程中,InkAnalyzerBase 会引发很多事件,包括在创建分析器的线程上进行后台分析的过程中生成的事件。许多 InkAnalyzerBase 事件都支持 InkAnalyzerBase 的数据代理功能。有关更多信息,请参见Data Proxy with Ink Analysis。
若要从事件处理程序内部停止分析过程,请调用 Abort 方法。
若要修改墨迹分析器用于识别手写内容的语言,请使用 SetStrokeLanguageId 或 SetStrokesLanguageId。若要修改墨迹分析器对特定笔画的分类方式,请使用 SetStrokeType 或 SetStrokesType。
InkAnalyzerBase 加载所有已安装的墨迹识别器。GetInkRecognizersByPriority 方法返回包含每个可用 InkRecognizerBase 的 InkRecognizerBaseCollection。如果有多个墨迹识别器支持特定语言,可使用 SetHighestPriorityInkRecognizer(InkRecognizer) 设置使用哪个墨迹识别器处理该语言的笔画。
通过向墨迹分析器提供额外上下文,分析提示可以提高识别准确度。额外上下文信息可以帮助墨迹分析器减少备选识别结果的数目。例如,通过定义智能标记、目标单词或以规则的形式在识别参考线中输入。有关向墨迹分析器提供上下文的更多信息,请参见
CreateAnalysisHint、DeleteAnalysisHint 和 GetAnalysisHints。
墨迹分析器以字符串或 ContextNodeBase 对象树的形式表示分析结果。若要访问已识别的字符串,请使用 GetRecognizedString。若要访问树的根,请使用 RootNode 属性。墨迹分析器的以下方法可用于查找特定上下文节点或文本。
若要使用备选分析结果,请使用 GetAlternates 和 ModifyTopAlternate。
若要保存分析结果,请使用 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
另请参见
参考
System.Windows.Ink.AnalysisCore 命名空间
System.Windows.Ink.AnalysisCore.AnalysisAlternateBase
System.Windows.Ink.AnalysisCore.AnalysisStatusBase