次の方法で共有


InkAnalyzerBase.PopulateContextNodeBase イベント

インク アナライザが、部分的に設定された ContextNodeBase の領域内で分析を実行する前に発生します。

名前空間 :  System.Windows.Ink.AnalysisCore
アセンブリ :  IACore (IACore.dll 内)

構文

'宣言
Public Event PopulateContextNodeBase As PopulateContextNodeBaseEventHandler
'使用
Dim instance As InkAnalyzerBase
Dim handler As PopulateContextNodeBaseEventHandler

AddHandler instance.PopulateContextNodeBase, handler
public event PopulateContextNodeBaseEventHandler PopulateContextNodeBase
public:
 event PopulateContextNodeBaseEventHandler^ PopulateContextNodeBase {
    void add (PopulateContextNodeBaseEventHandler^ value);
    void remove (PopulateContextNodeBaseEventHandler^ value);
}
/** @event */
public void add_PopulateContextNodeBase (PopulateContextNodeBaseEventHandler value)
/** @event */
public void remove_PopulateContextNodeBase (PopulateContextNodeBaseEventHandler value)
JScript では、イベントは使用できません。

解説

このイベントは、アプリケーションが InkAnalyzerBase のデータ構造と同期されている独自のデータ構造を保持している場合に使用します。インク アナライザがこのイベントを発生させると、アプリケーションは PopulateContextNodeBaseEventArgs.NodeToPopulate を設定する必要があります。分析段階で、インク アナライザはこのイベントを発生させて、インクを分析する領域の情報を収集します。

ドキュメントに NodeToPopulate のリンクが含まれている場合、アプリケーションはこれらのリンクを作成して追加する必要があります。この処理では、このイベントのイベント ハンドラが存在する前に、リンク元ノードとリンク先ノード (これらの祖先を含む) が完全に設定されている必要があります。

アプリケーション データと InkAnalyzerBase の同期の詳細については、「Data Proxy with Ink Analysis」を参照してください。

バックグラウンド分析時、インク アナライザは ReadyToReconcileBase イベントを発生させた後にこのイベントを発生させます。

次の例では、データ プロキシ イベント ハンドラを 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);
        }

次の例では、PopulateContextNodeBase イベントを処理する PopulateContextNodeBase メソッドを定義します。イベント情報が、ドキュメント モデル オブジェクト baseDocumentModel に渡されます。

この例では、ドキュメント モデルを定義したり、ドキュメント モデルが渡された情報を処理する方法を示したりはしません。

''' <summary>
''' Handles the InkAnalyzerBase.PopulateContextNodeBase event.
''' </summary>
''' <param name="sender">The source of the event.</param>
''' <param name="e">The event data.</param>
''' <remarks>
''' This event handler fully populates a ContextNodeBase from the document model.
''' The InkAnalyzerBase calls this event handler when it accesses a partially
''' populated ContextNodeBase created by the document model.
''' </remarks>
Private Sub PopulateContextNodeBase( _
    ByVal sender As Object, _
    ByVal e As System.Windows.Ink.AnalysisCore.PopulateContextNodeBaseEventArgs)

    Me.baseDocumentModel.PopulateNode( _
        e.NodeToPopulate, CType(sender, System.Windows.Ink.AnalysisCore.InkAnalyzerBase))

End Sub 'PopulateContextNodeBase
        /// <summary>
        /// Handles the InkAnalyzerBase.PopulateContextNodeBase event.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The event data.</param>
        /// <remarks>
        /// This event handler fully populates a ContextNodeBase from the document model.
        /// The InkAnalyzerBase calls this event handler when it accesses a partially
        /// populated ContextNodeBase created by the document model.
        /// </remarks>
        private void PopulateContextNodeBase(
            object sender, System.Windows.Ink.AnalysisCore.PopulateContextNodeBaseEventArgs e)
        {
            this.baseDocumentModel.PopulateNode(
                e.NodeToPopulate,
                (System.Windows.Ink.AnalysisCore.InkAnalyzerBase)sender);
        }

プラットフォーム

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 名前空間

System.Windows.Ink.AnalysisCore.ContextNodeBase

System.Windows.Ink.AnalysisCore.ContextLinkBase

InkAnalyzerBase.ReadyToReconcileBase