次の方法で共有


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.RemoveStroke、または RemoveStrokes メソッドを使用します。これらのメソッドは、ストロークが次の分析処理で分析される領域である DirtyRegion プロパティを更新します。

インクを分析するには、Analyze メソッドまたは BackgroundAnalyze メソッドを使用します。分析時に、InkAnalyzer はレイアウト分析、ストローク分類、および手書き認識を行います。

InkAnalyzer は、分析時に多くのイベントを発生させます。バックグラウンド分析中に生成されるイベントを InkAnalyzer がどのスレッドで発生させるかを指定するために、SynchronizingObject プロパティを設定します。多くの InkAnalyzer イベントでは、InkAnalyzer のデータ プロキシ機能がサポートされます。詳細については、「Data Proxy with Ink Analysis」を参照してください。

イベント ハンドラ内で分析処理を停止するには、Abort メソッドを呼び出します。

インク アナライザが手書き認識の識別に使用する言語を変更するには、InkAnalyzer.SetStrokeLanguageId または InkAnalyzer.SetStrokesLanguageId を使用します。インク アナライザが特定のストロークを分類する方法を変更するには、InkAnalyzer.SetStrokeType または InkAnalyzer.SetStrokesType を使用します。

InkAnalyzer は、インストールされたすべてのインク認識エンジンを読み込みます。GetInkRecognizersByPriority メソッドは、使用可能な InkRecognizer が含まれている InkRecognizerCollection を取得します。複数のインク認識エンジンが特定の言語をサポートする場合、SetAsHighestPriorityInkRecognizer を使用して、その言語のストロークを処理するインク認識エンジンを設定します。

インク分析処理へのコンテキストの提供の詳細については、CreateAnalysisHintDeleteAnalysisHint、および GetAnalysisHints を参照してください。

インク アナライザは、分析結果を文字列、または ContextNode オブジェクトのツリーとして表します。認識された文字列にアクセスするには、GetRecognizedString を使用します。ツリーのルートにアクセスするには、RootNode プロパティを使用します。インク アナライザには、特定のコンテキスト ノードまたはテキストを検索する次のメソッドがあります。

代替分析結果を取得するには、GetAlternates および ModifyTopAlternate を使用します。

分析結果を保存するには、SaveResults を使用します。保存された結果を読み込むには、Load を使用します。

InkAnalyzer を使用したインクの分析の詳細については、「Ink Analysis Overview」を参照してください。

イベント ハンドラが結合されているオブジェクトがスコープの外に出る前に、任意の InkAnalyzer オブジェクトの Dispose メソッドを明示的に呼び出す必要があります。

この例では次の処理を行います。

  • 新しい Microsoft.Ink.Ink オブジェクト theInk を初期化します。

  • Ink.InkAdded イベント ハンドラ theInk_InkAdded を theInk に結合します。

  • theInk からストローク データを分析できる新しい InkAnalyzer、theInkAnalyzer を初期化します。

' 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

参照

参照

InkAnalyzer メンバ

Microsoft.Ink 名前空間

Microsoft.Ink.AnalysisAlternate

Microsoft.Ink.AnalysisHintNode

Microsoft.Ink.AnalysisStatus

Microsoft.Ink.ContextLink

Microsoft.Ink.ContextNode