領域の分析のヒントを含む InkAnalyzer を提供します。
名前空間 : System.Windows.Ink
アセンブリ : IAWinFX (IAWinFX.dll 内)
構文
'宣言
Public NotInheritable Class AnalysisHintNode _
Inherits ContextNode
'使用
Dim instance As AnalysisHintNode
public sealed class AnalysisHintNode : ContextNode
public ref class AnalysisHintNode sealed : public ContextNode
public final class AnalysisHintNode extends ContextNode
public final class AnalysisHintNode extends ContextNode
解説
AnalysisHintNode は、結合先の InkAnalyzer にヒントを提供します。ヒントは、AnalysisHintNode の Location プロパティによって指定された領域に適用されます。これは、インク アナライザに、認識の正確さを向上するために使用される追加のコンテキストを提供します。InkAnalyzer は、ヒントの領域内でインクを分析するときにこのコンテキスト情報を適用します。
ヒントに、グローバル ヒントと呼ばれる無限領域が割り当てられた場合、InkAnalyzer はヒントのコンテキストを、他のヒント領域内に含まれていないすべてのインクに適用します。1 つの InkAnalyzer に複数のヒントをアタッチできます。ただし、グローバル ヒントは 1 つの InkAnalyzer に 1 つだけアタッチでき、グローバル ヒント以外のヒントは重複できません。ヒントが提供可能なコンテキスト情報の種類の詳細については、AnalysisHintNode のメンバのページを参照してください。
InkAnalyzer にヒントを追加するには、InkAnalyzer.CreateAnalysisHint を使用します。InkAnalyzer からヒントを削除するには、InkAnalyzerDeleteAnalysisHint() を使用します。
![]() |
---|
InkAnalyzer にヒントを追加しても、InkAnalyzer オブジェクトの DirtyRegion は変更されません。InkAnalyzer を使用してヒントの領域内でインクを再分析するには、DirtyRegion オブジェクトの Union(AnalysisRegion) メソッドを使用します。 |
InkAnalyzer は、Analyze または BackgroundAnalyze() メソッドのいずれかが呼び出されると、ヒントの Links プロパティを更新します。InkAnalyzer は、AnalysisHintNode と、ヒントが適用される各 ContextNode の間に ContextLink を追加します。ContextNode のすべての子孫にヒントが適用される場合、InkAnalyzer は、ヒントをその ContextNode にのみリンクし、その子孫にはリンクしません。
カスタム認識エンジン ノードにヒントを適用する場合、AnalysisHintNode の Location プロパティは使用されません。ヒントを作成して、ストロークが CustomRecognizerNode 内に含まれるようにその場所を設定した場合、このヒントはそれらのストロークに適用されません。カスタム認識エンジン ノード内のストロークにヒントを正しく適用するには、Analyze を呼び出す前に AnalysisHintNode と CustomRecognizerNode の間にリンクを作成します。たとえば、theAnalysisHint という AnalysisHintNode と、theCustomRecognizerNode という CustomRecognizerNode があるとします。2 つの間にリンクを作成するには、theAnalysisHint.Links.Add(theCustomRecognizerNode, ContextLinkDirection.LinksWith) を使用します。
グローバル ヒント以外のヒントを 1 つだけ CustomRecognizerNode に適用できます。CustomRecognizerNode からグローバル ヒント以外のヒントを削除するには、ContextLinkCollectionRemove() を使用して CustomRecognizerNode の Links プロパティからリンクを削除します。
空ではない領域のグローバル ヒント以外のヒントが CustomRecognizerNode に適用された場合、InkAnalyzer はヒントのコンテキストを CustomRecognizerNode と、ヒントの領域内のインクの両方に適用します。
分析の実行時に、AnalysisHintNode から CustomRecognizerNode へのリンクが作成または削除されることはありません。
フォーム アプリケーションでヒントを使用する場合は、テキスト コンテキストとインクを混同しないでください。ヒントは、インクをページ上の領域に関連付けるためのものです。テキスト コンテキストは、インクからヒントへの関連付けに干渉します。そのため、テキスト フィールド名は分析ツリーに作成しないようにします。作成した場合、分析処理では、同じ手書き領域のインクとテキスト コンテキストをマージされます。これにより、インクがヒント領域に関連付けられなくなります。
例
この例では、(theInkAnalyzerWithHint という名前の) InkAnalyzer の (theAnalysisHint という名前の) AnalysisHintNode を作成し、その領域を無限にすることにより theAnalysisHint をグローバル ヒントにします。次に、ヒントで AllowPartialDictionaryTerms プロパティおよび Name プロパティを設定します。
' Add a new, global analysis hint to theInkAnalyzerWithHint.
Dim theAnalysisHint As AnalysisHintNode = Me.theInkAnalyzerWithHint.CreateAnalysisHint()
theAnalysisHint.Location.MakeInfinite()
theAnalysisHint.AllowPartialDictionaryTerms = True
theAnalysisHint.Name = "Allow Partial Dictionary Terms"
// Add a new, global analysis hint to theInkAnalyzerWithHint.
AnalysisHintNode theAnalysisHint =
this.theInkAnalyzerWithHint.CreateAnalysisHint();
theAnalysisHint.Location.MakeInfinite();
theAnalysisHint.AllowPartialDictionaryTerms = true;
theAnalysisHint.Name = "Allow Partial Dictionary Terms";
継承階層
System.Object
System.Windows.Ink.ContextNode
System.Windows.Ink.AnalysisHintNode
スレッド セーフ
この型のすべてのパブリック static (Visual Basic では Shared) メンバは、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォーム
Windows Vista
.NET Framework および .NET Compact Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。
バージョン情報
.NET Framework
サポート対象 : 3.0
参照
参照
System.Windows.Ink.ContextLink