다음을 통해 공유


InkAnalyzer 클래스

업데이트: 2007년 11월

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

네임스페이스:  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 속성을 사용합니다. 잉크 분석기에는 특정 컨텍스트 노드나 텍스트를 찾는 다음과 같은 메서드가 있습니다.

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

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

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

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

예제

다음 예제에서는 새 InkAnalyzer를 만들고 theInkCanvas라는 InkCanvasStrokes 속성에 StrokesChanged 이벤트 처리기를 연결합니다.

theInkAnalyzer = New InkAnalyzer()

AddHandler theInkCanvas.Strokes.StrokesChanged, AddressOf Strokes_StrokesChanged
theInkAnalyzer = new InkAnalyzer();

theInkCanvas.Strokes.StrokesChanged += 
    new StrokeCollectionChangedEventHandler(Strokes_StrokesChanged);

다음 예제에서는 스트로크가 theInkCanvas에 이미 추가된 경우 theInkAnalyzer에 스트로크를 추가하는 Strokes_StrokesChanged 이벤트 처리기를 정의합니다. 또한 스트로크가 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에서 지원

참고 항목

참조

InkAnalyzer 멤버

System.Windows.Ink 네임스페이스

System.Windows.Ink.AnalysisAlternate

System.Windows.Ink.AnalysisHintNode

System.Windows.Ink.AnalysisStatus

System.Windows.Ink.ContextLink

System.Windows.Ink.ContextNode