다음을 통해 공유


InkAnalyzerBase.InkAnalyzerStateChangingBase 이벤트

업데이트: 2007년 11월

응용 프로그램이 잉크 분석기와 데이터를 동기화할 수 있도록 잉크 분석기가 분석 결과를 조정하기 전에 발생합니다.

네임스페이스:  System.Windows.Ink.AnalysisCore
어셈블리:  IACore(IACore.dll)

구문

‘선언
Public Event InkAnalyzerStateChangingBase As InkAnalyzerStateChangingBaseEventHandler
‘사용 방법
Dim instance As InkAnalyzerBase
Dim handler As InkAnalyzerStateChangingBaseEventHandler

AddHandler instance.InkAnalyzerStateChangingBase, handler
public event InkAnalyzerStateChangingBaseEventHandler InkAnalyzerStateChangingBase
public:
 event InkAnalyzerStateChangingBaseEventHandler^ InkAnalyzerStateChangingBase {
    void add (InkAnalyzerStateChangingBaseEventHandler^ value);
    void remove (InkAnalyzerStateChangingBaseEventHandler^ value);
}
/** @event */
public void add_InkAnalyzerStateChangingBase (InkAnalyzerStateChangingBaseEventHandler value)
/** @event */
public void remove_InkAnalyzerStateChangingBase (InkAnalyzerStateChangingBaseEventHandler value)
JScript에서는 이벤트를 지원하지 않습니다.

설명

응용 프로그램에서 InkAnalyzerBase의 데이터 구조와 동기화되는 자체 데이터 구조를 유지하는 경우 이 이벤트를 사용합니다. 잉크 분석기가 이 이벤트를 발생시키면 응용 프로그램에서는 InkAnalyzerBase 개체의 RootNodeSubNodes 속성을 채워야 합니다.

잉크 분석기는 ReadyToReconcileBase 이벤트를 발생시킨 후에 이 이벤트를 발생시킵니다. 이 이벤트는 백그라운드 분석을 수행하는 동안에만 발생합니다.

잉크 분석기에서 InkAnalyzerStateChangingBase 이벤트가 발생하면 데이터 구조를 잠가야 합니다. 이 분석 단계에서 데이터 구조를 변경하면 잉크 분석 및 동기화와 관련된 오류가 발생할 수 있습니다. 잉크 분석기에서 IntermediateResultsUpdatedBase 또는 ResultsUpdatedBase 이벤트가 발생하면 데이터 구조의 잠금을 해제해야 합니다.

응용 프로그램 데이터와 InkAnalyzerBase를 동기화하는 방법에 대한 자세한 내용은 Data Proxy with Ink Analysis을를 참조하십시오.

예제

다음 예제에서는 InkAnalyzerBase인 baseInkAnalyzer에 데이터 프록시 이벤트 처리기를 연결하는 AttachDataProxyEventHandlers라는 메서드를 정의합니다.

Private Sub AttachDataProxyEventHandlers()
    ' If the document model supports on demand data proxy, then add an
    ' event handler for the PopulateContextNodeBase event. This event is raised
    ' when the InkAnalyzerBase accesses a partially populated ContextNodeBase
    ' created by the document model.
    If Me.baseDocumentModel.SupportsOnDemandDataProxy Then
        AddHandler Me.baseInkAnalyzer.PopulateContextNodeBase, AddressOf Me.PopulateContextNodeBase
    End If

    ' Add the other data proxy related event handlers. These events are raised
    ' by the InkAnalyzer to communicate parsing results to the document model.
    AddHandler Me.baseInkAnalyzer.ContextNodeCreatedBase, _
        AddressOf Me.AddContextNodeBase
    AddHandler Me.baseInkAnalyzer.ContextNodeDeletingBase, _
        AddressOf Me.RemoveContextNodeBase
    AddHandler Me.baseInkAnalyzer.ContextNodeLinkAddingBase, _
        AddressOf Me.AddContextNodeLinkBase
    AddHandler Me.baseInkAnalyzer.ContextNodeLinkDeletingBase, _
        AddressOf Me.RemoveContextNodeLinkBase
    AddHandler Me.baseInkAnalyzer.ContextNodeMovingToPositionBase, _
        AddressOf Me.MoveContextNodeBaseToPosition
    AddHandler Me.baseInkAnalyzer.ContextNodePropertiesUpdatedBase, _
        AddressOf Me.UpdateContextNodeBaseProperties
    AddHandler Me.baseInkAnalyzer.ContextNodeReparentingBase, _
        AddressOf Me.ReparentContextNodeBase
    AddHandler Me.baseInkAnalyzer.InkAnalyzerStateChangingBase, _
        AddressOf Me.InkAnalyzerBase_StateChanging
    AddHandler Me.baseInkAnalyzer.StrokesReparentedBase, _
        AddressOf Me.ReparentStroke
    AddHandler Me.baseInkAnalyzer.IntermediateResultsUpdatedBase, _
        AddressOf Me.BaseResultsAvailable
    AddHandler Me.baseInkAnalyzer.ResultsUpdatedBase, _
        AddressOf Me.BaseResultsAvailable

End Sub 'AttachDataProxyEventHandlers
        private void AttachDataProxyEventHandlers()
        {
            // If the document model supports on demand data proxy, then add an
            // event handler for the PopulateContextNodeBase event. This event is raised
            // when the InkAnalyzerBase accesses a partially populated ContextNodeBase
            // created by the document model.
            if (this.baseDocumentModel.SupportsOnDemandDataProxy)
            {
                this.baseInkAnalyzer.PopulateContextNodeBase +=
                    new System.Windows.Ink.AnalysisCore.PopulateContextNodeBaseEventHandler(
                        this.PopulateContextNodeBase);
            }

            // Add the other data proxy related event handlers. These events are raised
            // by the InkAnalyzer to communicate parsing results to the document model.
            this.baseInkAnalyzer.ContextNodeCreatedBase +=
                new System.Windows.Ink.AnalysisCore.ContextNodeCreatedBaseEventHandler(
                    this.AddContextNodeBase);
            this.baseInkAnalyzer.ContextNodeDeletingBase +=
                new System.Windows.Ink.AnalysisCore.ContextNodeDeletingBaseEventHandler(
                    this.RemoveContextNodeBase);
            this.baseInkAnalyzer.ContextNodeLinkAddingBase +=
                new System.Windows.Ink.AnalysisCore.ContextNodeLinkAddingBaseEventHandler(
                    this.AddContextNodeLinkBase);
            this.baseInkAnalyzer.ContextNodeLinkDeletingBase +=
                new System.Windows.Ink.AnalysisCore.ContextNodeLinkDeletingBaseEventHandler(
                    this.RemoveContextNodeLinkBase);
            this.baseInkAnalyzer.ContextNodeMovingToPositionBase +=
                new System.Windows.Ink.AnalysisCore.ContextNodeMovingToPositionBaseEventHandler(
                    this.MoveContextNodeBaseToPosition);
            this.baseInkAnalyzer.ContextNodePropertiesUpdatedBase +=
                new System.Windows.Ink.AnalysisCore.ContextNodePropertiesUpdatedBaseEventHandler(
                    this.UpdateContextNodeBaseProperties);
            this.baseInkAnalyzer.ContextNodeReparentingBase +=
                new System.Windows.Ink.AnalysisCore.ContextNodeReparentingBaseEventHandler(
                    this.ReparentContextNodeBase);
            this.baseInkAnalyzer.InkAnalyzerStateChangingBase +=
                new System.Windows.Ink.AnalysisCore.InkAnalyzerStateChangingBaseEventHandler(
                    this.InkAnalyzerBase_StateChanging);
            this.baseInkAnalyzer.StrokesReparentedBase +=
                new System.Windows.Ink.AnalysisCore.StrokesReparentedBaseEventHandler(
                    this.ReparentStroke);
            this.baseInkAnalyzer.IntermediateResultsUpdatedBase +=
                new System.Windows.Ink.AnalysisCore.ResultsUpdatedBaseEventHandler(
                    this.BaseResultsAvailable);
            this.baseInkAnalyzer.ResultsUpdatedBase +=
                new System.Windows.Ink.AnalysisCore.ResultsUpdatedBaseEventHandler(
                    this.BaseResultsAvailable);
        }

다음 예제에서는 InkAnalyzerStateChangingBase 이벤트를 처리하는 InkAnalyzerBase_StateChanging이라는 메서드를 정의합니다. 이벤트 정보는 문서 모델 개체인 baseDocumentModel에 전달됩니다.

이 예제에서는 문서 모델의 정의를 제공하거나 문서 모델에서 전달된 정보를 처리하는 방법을 보여 주지 않습니다.

''' <summary>
''' Handles the InkAnalyzerBase.InkAnalyzerStateChangingBase event.
''' </summary>
''' <param name="sender">The source of the event.</param>
''' <param name="e">The event data.</param>
Private Sub InkAnalyzerBase_StateChanging( _
    ByVal sender As Object, ByVal e As System.EventArgs)

    Me.baseDocumentModel.BeginReconcilePhase()

End Sub 'InkAnalyzerBase_StateChanging
/// <summary>
/// Handles the InkAnalyzerBase.InkAnalyzerStateChangingBase event.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The event data.</param>
private void InkAnalyzerBase_StateChanging(
    object sender, System.EventArgs e)
{
    this.baseDocumentModel.BeginReconcilePhase();
}

플랫폼

Windows Vista, Windows XP SP2, Windows Server 2003

.NET Framework 및 .NET Compact Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

3.0에서 지원

참고 항목

참조

InkAnalyzerBase 클래스

InkAnalyzerBase 멤버

System.Windows.Ink.AnalysisCore 네임스페이스

InkAnalyzerBase.BackgroundAnalyze

InkAnalyzerBase.IntermediateResultsUpdatedBase

InkAnalyzerBase.PopulateContextNodeBase

InkAnalyzerBase.ReadyToReconcileBase

InkAnalyzerBase.ResultsUpdatedBase