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 的資料 Proxy 功能。如需詳細資訊,請參閱Data Proxy with Ink Analysis。
若要從事件處理常式內部停止分析程序,請呼叫 Abort 方法。
若要修改筆墨分析器用來辨識手寫的語言,請使用 InkAnalyzer.SetStrokeLanguageId 或 InkAnalyzer.SetStrokesLanguageId。若要修改筆墨分析器分類特定筆劃的方式,請使用 InkAnalyzer.SetStrokeType 或 InkAnalyzer.SetStrokesType。
InkAnalyzer 會載入所有已安裝的筆墨辨識器。GetInkRecognizersByPriority 方法會取得 InkRecognizerCollection,其中包含每個可用的 InkRecognizer。如果有多個筆墨辨識器支援特定語言,請使用 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。
初始化名為 theInkAnalyzer 的新 InkAnalyzer,分析來自 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
執行緒安全
這個型別的任何 Public static (在 Visual Basic 中為 Shared) 成員都具備執行緒安全。並非所有的執行個體成員都是安全執行緒。
平台
Windows Vista
.NET Framework 和 .NET Compact Framework 並不支援各種平台的所有版本。如需支援平台版本的相關資訊,請參閱 .NET Framework 系統需求。
版本資訊
.NET Framework
支援版本:3.0
請參閱
參考
Microsoft.Ink.AnalysisAlternate