共用方式為


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 中新增或移除筆劃以便進行分析,請使用 AddStrokeAddStrokesInkAnalyzer.RemoveStrokeRemoveStrokes 方法。這些方法會更新 DirtyRegion 屬性,這個屬性是下一次分析作業中所要分析的筆劃區域。

若要分析筆墨,請使用 AnalyzeBackgroundAnalyze 方法。分析期間,InkAnalyzer 會執行配置分析、筆劃分類及手寫辨識。

分析期間,InkAnalyzer 會引發一些事件。設定 SynchronizingObject 屬性可指定執行緒,InkAnalyzer 會在該執行緒上引發背景分析期間產生的事件。許多 InkAnalyzer 事件支援 InkAnalyzer 的資料 Proxy 功能。如需詳細資訊,請參閱Data Proxy with Ink Analysis

若要從事件處理常式內部停止分析程序,請呼叫 Abort 方法。

若要修改筆墨分析器用來辨識手寫的語言,請使用 InkAnalyzer.SetStrokeLanguageIdInkAnalyzer.SetStrokesLanguageId。若要修改筆墨分析器分類特定筆劃的方式,請使用 InkAnalyzer.SetStrokeTypeInkAnalyzer.SetStrokesType

InkAnalyzer 會載入所有已安裝的筆墨辨識器。GetInkRecognizersByPriority 方法會取得 InkRecognizerCollection,其中包含每個可用的 InkRecognizer。如果有多個筆墨辨識器支援特定語言,請使用 SetAsHighestPriorityInkRecognizer 設定處理該語言筆劃的筆墨辨識器。

如需提供筆墨分析作業所需內容的詳細資訊,請參閱 CreateAnalysisHintDeleteAnalysisHintGetAnalysisHints

筆墨分析器會以字串或 ContextNode 物件的樹狀目錄表示分析結果。若要存取辨識的字串,請使用 GetRecognizedString。若要存取樹狀根目錄,請使用 RootNode 屬性。筆墨分析器會使用下列方法尋找特定的內容節點或文字。

若要處理其他分析結果,請使用 GetAlternatesModifyTopAlternate

若要儲存分析結果,請使用 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

請參閱

參考

InkAnalyzer 成員

Microsoft.Ink 命名空間

Microsoft.Ink.AnalysisAlternate

Microsoft.Ink.AnalysisHintNode

Microsoft.Ink.AnalysisStatus

Microsoft.Ink.ContextLink

Microsoft.Ink.ContextNode