レイアウト分析、書き込みと描画分類、および手書き認識へのアクセスを提供します。
名前空間 : System.Windows.Ink
アセンブリ : IAWinFX (IAWinFX.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、RemoveStroke()、または RemoveStrokes() メソッドを使用します。これらのメソッドは、次の分析処理で分析されるストロークを含む領域を定義する DirtyRegion プロパティを更新します。
インクを分析するには、Analyze メソッドまたは BackgroundAnalyze() メソッドを使用します。分析時に、InkAnalyzer はレイアウト分析、ストローク分類、および手書き認識を行います。
InkAnalyzer は、分析時に多くのイベントを発生させます。SynchronizingObject プロパティを設定して、InkAnalyzer が、バックグラウンド分析時に生成されるイベントを発生させるスレッドを指定します。多くの InkAnalyzer イベントでは、InkAnalyzer のデータ プロキシ機能がサポートされます。詳細については、「Data Proxy with Ink Analysis」を参照してください。
イベント ハンドラ内で分析処理を停止するには、Abort メソッドを呼び出します。
インク アナライザが手書き認識の識別に使用する言語を変更するには、SetStrokeLanguageId() または SetStrokesLanguageId() を使用します。インク アナライザが特定のストロークを分類する方法を変更するには、SetStrokeType() または SetStrokesType() を使用します。
InkAnalyzer は、インストールされたすべてのインク認識エンジンを読み込みます。InkRecognizersByPriority() プロパティは、使用可能な InkRecognizer が含まれている InkRecognizerCollection を取得します。複数のインク認識エンジンが特定の言語をサポートする場合、SetHighestPriorityInkRecognizer(InkRecognizer) を使用して、任意の言語のストロークを処理するインク認識エンジンを指定します。
インク分析処理へのコンテキストの提供の詳細については、CreateAnalysisHint、DeleteAnalysisHint()、および GetAnalysisHints を参照してください。
インク アナライザは、分析結果を文字列、または ContextNode オブジェクトのツリーとして表します。認識された文字列にアクセスするには、GetRecognizedString() を使用します。ツリーのルートにアクセスするには、RootNode プロパティを使用します。インク アナライザには、特定のコンテキスト ノードまたはテキストを検索する次のメソッドがあります。
GetNodesFromTextRange(Int32%, Int32%)
GetTextRangeFromNodes(ContextNodeBaseCollection, Int32%, Int32%)
代替分析結果を取得するには、GetAlternates および ModifyTopAlternate を使用します。
分析結果を保存するには、SaveResults を使用します。保存された結果を読み込むには、Load を使用します。
InkAnalyzer を使用したインクの分析の詳細については、「Ink Analysis Overview」を参照してください。
イベント ハンドラが結合されているオブジェクトがスコープの外に出る前に、任意の InkAnalyzer オブジェクトの Dispose メソッドを明示的に呼び出す必要があります。
例
次の例では、新しい InkAnalyzer を作成し、StrokesChanged イベント ハンドラを、theInkCanvas という名前の InkCanvas の Strokes プロパティに結合します。
theInkAnalyzer = New InkAnalyzer()
AddHandler theInkCanvas.Strokes.StrokesChanged, AddressOf Strokes_StrokesChanged
theInkAnalyzer = new InkAnalyzer();
theInkCanvas.Strokes.StrokesChanged +=
new StrokeCollectionChangedEventHandler(Strokes_StrokesChanged);
次の例では、Strokes_StrokesChanged イベント ハンドラを定義します。このイベント ハンドラは、ストロークが既に theInkCanvas に追加されていた場合は、ストロークを theInkAnalyzer に追加します。また、ストロークが既に theInkCanvas から削除されていた場合は、theInkAnalyzer からストロークを削除します。
' This event occurs whenever a stroke is added, removed, or partially erased
' from the InkCanvas.
Sub Strokes_StrokesChanged(ByVal sender As Object, ByVal e As StrokeCollectionChangedEventArgs)
If e.Added.Count > 0 Then
theInkAnalyzer.AddStrokes(e.Added)
End If
If e.Removed.Count > 0 Then
theInkAnalyzer.RemoveStrokes(e.Removed)
End If
End Sub 'Strokes_StrokesChanged
// This event occurs whenever a stroke is added, removed, or partially erased
// from the InkCanvas.
void Strokes_StrokesChanged(object sender, StrokeCollectionChangedEventArgs e)
{
if (e.Added.Count > 0)
{
theInkAnalyzer.AddStrokes(e.Added);
}
if (e.Removed.Count > 0)
{
theInkAnalyzer.RemoveStrokes(e.Removed);
}
}
継承階層
System.Object
System.Windows.Ink.InkAnalyzer
スレッド セーフ
この型のすべてのパブリック static (Visual Basic では Shared) メンバは、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォーム
Windows Vista
.NET Framework および .NET Compact Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。
バージョン情報
.NET Framework
サポート対象 : 3.0
参照
参照
System.Windows.Ink.AnalysisAlternate
System.Windows.Ink.AnalysisHintNode
System.Windows.Ink.AnalysisStatus