ContextNode.SetStrokes メソッド
ContextNode オブジェクトで、指定したストロークを設定します。
名前空間 : Microsoft.Ink
アセンブリ : Microsoft.Ink.Analysis (Microsoft.Ink.Analysis.dll 内)
構文
'宣言
Public Sub SetStrokes ( _
strokes As Strokes _
)
'使用
Dim instance As ContextNode
Dim strokes As Strokes
instance.SetStrokes(strokes)
public void SetStrokes(
Strokes strokes
)
public:
void SetStrokes(
Strokes^ strokes
)
public void SetStrokes(
Strokes strokes
)
public function SetStrokes(
strokes : Strokes
)
パラメータ
- strokes
型 : Microsoft.Ink.Strokes
ContextNode オブジェクトが取得する Strokes。
解説
このメソッドは、DirtyRegion を更新しません。
ストローク コレクションの指定したストロークのいずれかが既に InkAnalyzer で設定されている場合、ArgumentException がスローされます。
例
次の例では、System.Windows.Forms.TreeView をドキュメント モデルとして使用して、InkAnalyzer のコンテキスト ノード ツリーの格納と読み込みにデータ プロキシを使用する方法を示すサンプル コードから、PopulateNode というメソッドを示します。各 TreeNode オブジェクトの Tag プロパティが DocumentNodeData オブジェクトに設定されている場合、DocumentNodeData クラスは ContextNode データをドキュメント モデルに格納します。
PopulateNode メソッドは、InkAnalyzer オブジェクトからストローク、プロパティ データ、注釈の種類、子ノード、およびリンクを追加することにより、ContextNode オブジェクトに完全に書き込みます。SetStrokes を使用してストロークを追加します。データは、対応する TreeNode から取得された DocumentNodeData オブジェクトにより生成されます。
this[analyzerNode.Id] は、Guid を TreeNode に対応付けるドキュメント モデルのクラスのインデクサです (VB.NET では Me(analyzerNode.Id))。
AddLinksToAnalyer は、ContextNode にリンクを追加するドキュメント モデル クラス上のメソッドです。
ノードに完全に書き込みが行われたら、PartiallyPopulated プロパティが false に設定されます。データ プロキシの詳細については、「Data Proxy with Ink Analysis」を参照してください。
Sub PopulateNode(ByVal analyzerNode As Microsoft.Ink.ContextNode, _
ByVal theInkAnalyzer As Microsoft.Ink.InkAnalyzer) _
Implements IDocumentModel.PopulateNode
System.Diagnostics.Debug.WriteLine( _
String.Format("IDocumentModel.PopulateNode: populate {0} {1}.", _
TreeViewDocumentModel.GetContextNodeTypeName(analyzerNode.Type), analyzerNode.Id))
System.Diagnostics.Debug.Indent()
' Get the document node associated with the analyzer node.
Dim documentNode As TreeNode = Me(analyzerNode.Id)
If documentNode Is Nothing Then
Throw New ApplicationException("The requested node does not exist in the document model.")
End If
' Get the data associated with the node.
Dim nodeData As DocumentNodeData = documentNode.Tag '
' Copy any application specific data associated with the node to the
' partially populated ContextNode.
Dim identifier As Guid
For Each identifier In nodeData.GetPropertyDataIds()
analyzerNode.AddPropertyData(identifier, nodeData.GetPropertyData(identifier))
Next identifier
' Check if the partially populated ContextNode is an ink leaf node.
If nodeData.IsInkLeafNode Then
' Add the strokes to the context node.
analyzerNode.SetStrokes(nodeData.Strokes)
Else
' Add each child subnode as a partially populated ContextNode.
Dim documentSubNode As TreeNode
For Each documentSubNode In documentNode.Nodes
' Get the DocumentNode data for the
Dim subNodeData As DocumentNodeData = documentSubNode.Tag
If analyzerNode.SubNodes.IndexOf(nodeData.Id) <> -1 Then
analyzerNode.CreatePartiallyPopulatedSubNode( _
subNodeData.Type, subNodeData.Id, subNodeData.Location)
End If
Next documentSubNode
End If
' Add links to the ContextNode.
Me.AddLinksToAnalyzer(documentNode, analyzerNode, theInkAnalyzer)
' Update the partially populated flag.
analyzerNode.PartiallyPopulated = False
System.Diagnostics.Debug.Unindent()
End Sub 'IDocumentModel.PopulateNode
void IDocumentModel.PopulateNode(
Microsoft.Ink.ContextNode analyzerNode,
Microsoft.Ink.InkAnalyzer theInkAnalyzer)
{
System.Diagnostics.Debug.WriteLine(string.Format(
"IDocumentModel.PopulateNode: populate {0} {1}.",
TreeViewDocumentModel.GetContextNodeTypeName(analyzerNode.Type),
analyzerNode.Id));
System.Diagnostics.Debug.Indent();
// Get the document node associated with the analyzer node.
TreeNode documentNode = this[analyzerNode.Id];
if (null == documentNode)
{
throw new ApplicationException(
"The requested node does not exist in the document model.");
}
// Get the data associated with the node.
DocumentNodeData nodeData = documentNode.Tag as DocumentNodeData;
// Copy any application specific data associated with the node to the
// partially populated ContextNode.
foreach (Guid identifier in nodeData.GetPropertyDataIds())
{
analyzerNode.AddPropertyData(
identifier, nodeData.GetPropertyData(identifier));
}
// Check if the partially populated ContextNode is an ink leaf node.
if (nodeData.IsInkLeafNode)
{
// Add the strokes to the context node.
analyzerNode.SetStrokes(nodeData.Strokes);
}
else
{
// Add each child subnode as a partially populated ContextNode.
foreach (TreeNode documentSubNode in documentNode.Nodes)
{
// Get the DocumentNode data for the
DocumentNodeData subNodeData = documentSubNode.Tag as DocumentNodeData;
if (analyzerNode.SubNodes.IndexOf(nodeData.Id) != -1)
{
analyzerNode.CreatePartiallyPopulatedSubNode(
subNodeData.Type, subNodeData.Id, subNodeData.Location);
}
}
}
// Add links to the ContextNode.
this.AddLinksToAnalyzer(documentNode, analyzerNode, theInkAnalyzer);
// Update the partially populated flag.
analyzerNode.PartiallyPopulated = false;
System.Diagnostics.Debug.Unindent();
}
プラットフォーム
Windows Vista
.NET Framework および .NET Compact Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。
バージョン情報
.NET Framework
サポート対象 : 3.0