다음을 통해 공유


InkAnalyzer 클래스

업데이트: 2007년 11월

레이아웃 분석, 필기와 그리기 분류 및 필기 인식 기능에 액세스합니다.

네임스페이스:  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는 여러 이벤트를 발생시킵니다. 백그라운드 분석 도중 생성되는 이벤트를 InkAnalyzer에서 어떠한 스레드에 발생시킬지 지정하려면 SynchronizingObject 속성을 설정합니다. 여러 InkAnalyzer 이벤트가 InkAnalyzer의 데이터 프록시 기능을 지원합니다. 자세한 내용은 Data Proxy with Ink Analysis을를 참조하십시오.

이벤트 처리기 내에서 분석 프로세스를 중지하려면 Abort 메서드를 호출합니다.

잉크 분석기에서 필기를 인식하는 데 사용하는 언어를 수정하려면 InkAnalyzer.SetStrokeLanguageId 또는 InkAnalyzer.SetStrokesLanguageId를 사용합니다. 잉크 분석기에서 특정 스트로크를 분류하는 방법을 수정하려면 InkAnalyzer.SetStrokeType 또는 InkAnalyzer.SetStrokesType을 사용합니다.

InkAnalyzer는 설치된 잉크 분석기를 모두 로드합니다. GetInkRecognizersByPriority 메서드는 사용 가능한 각 InkRecognizer가 들어 있는 InkRecognizerCollection을 가져옵니다. 특정 언어를 지원하는 잉크 인식기가 둘 이상인 경우 SetAsHighestPriorityInkRecognizer를 사용하여 해당 언어의 스트로크를 처리할 잉크 인식기를 설정합니다.

잉크 분석 작업에 대한 컨텍스트를 제공하는 방법은 CreateAnalysisHint, DeleteAnalysisHintGetAnalysisHints를 참조하십시오.

잉크 분석기는 분석 결과를 문자열 또는 ContextNode 개체 트리로 분석합니다. 인식된 문자열에 액세스하려면 GetRecognizedString을 사용합니다. 트리의 루트에 액세스하려면 RootNode 속성을 사용합니다. 잉크 분석기에는 특정 컨텍스트 노드나 텍스트를 찾는 다음과 같은 메서드가 있습니다.

대체 분석 결과로 작업하려면 GetAlternatesModifyTopAlternate를 사용합니다.

분석 결과를 저장하려면 SaveResults를 사용합니다. 저장된 결과를 로드하려면 Load를 사용합니다.

InkAnalyzer를 사용하여 잉크를 분석하는 방법에 대한 자세한 내용은 Ink Analysis Overview를 참조하십시오.

개체가 범위를 벗어나기 전에 이벤트 처리기가 연결된 모든 InkAnalyzer 개체에 대해 Dispose 메서드를 명시적으로 호출해야 합니다.

예제

이 예제에서는 다음을 수행합니다.

  • Microsoft.Ink.Ink 개체인 theInk를 초기화합니다.

  • theInk에 Ink.InkAdded 이벤트 처리기인 theInk_InkAdded를 연결합니다.

  • 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