インク分析の結果である ContextNodeBase オブジェクトのコレクションが含まれます。
名前空間 : System.Windows.Ink.AnalysisCore
アセンブリ : IACore (IACore.dll 内)
構文
'宣言
Public Class ContextNodeBaseCollection _
Implements ICollection, IEnumerable
'使用
Dim instance As ContextNodeBaseCollection
public class ContextNodeBaseCollection : ICollection,
IEnumerable
public ref class ContextNodeBaseCollection : ICollection,
IEnumerable
public class ContextNodeBaseCollection implements ICollection,
IEnumerable
public class ContextNodeBaseCollection implements ICollection, IEnumerable
例
次の例では、theInkAnalyzerBase という名前の InkAnalyzerBase の InkAnalyzerBase. FindNodesOfType メソッドで得た ContextNodeBaseCollection をループする方法を示します。この例では、すべてのライン ノードをループし、同じ単語が含まれる 2 つのインク単語ノードが存在する場合は、赤色でマークします。
' If two identical ink words occur next to each other, mark them as red.
' Note: This doesn't actually look for pairs that go across two lines.
Dim lines As ContextNodeBaseCollection = _
theInkAnalyzerBase.FindNodesOfType(System.Windows.Ink.AnalysisCore.ContextNodeTypeBase.Line)
For Each lineNode As ContextNodeBase In lines
Dim previousWord As ContextNodeBase = Nothing
Dim previousWordRecognizedString As String = ""
For Each inkWord As ContextNodeBase In _
theInkAnalyzerBase.FindNodesOfType(ContextNodeTypeBase.InkWord, lineNode)
Dim inkWordRecognizedString As String = ""
If inkWord.ContainsPropertyData(PropertyGuidsForContextNodesBase.RecognizedString) Then
inkWordRecognizedString = _
CType(inkWord.GetPropertyData(PropertyGuidsForContextNodesBase.RecognizedString), String)
End If
' TODO: I think I can get rid of this and just assign the previous string
' to the current string
If Not previousWord Is Nothing Then
previousWordRecognizedString = _
CType(previousWord.GetPropertyData(PropertyGuidsForContextNodesBase.RecognizedString), String)
End If
If previousWordRecognizedString <> "" Then
Dim previousWordStrokes As Strokes = theInk.CreateStrokes(previousWord.GetStrokeIds())
Dim inkWordStrokes As Strokes = theInk.CreateStrokes(previousWord.GetStrokeIds())
For Each aStroke As Stroke In previousWordStrokes
aStroke.DrawingAttributes = New DrawingAttributes(Color.Red)
Next aStroke
For Each aStroke As Stroke In inkWordStrokes
aStroke.DrawingAttributes = New DrawingAttributes(Color.Red)
Next aStroke
End If
previousWord = inkWord
Next inkWord
Next lineNode
// If two identical ink words occur next to each other, mark them as red.
// Note: This doesn't actually look for pairs that go across two lines.
ContextNodeBaseCollection lines =
theInkAnalyzerBase.FindNodesOfType(System.Windows.Ink.AnalysisCore.ContextNodeTypeBase.Line);
foreach (ContextNodeBase lineNode in lines)
{
ContextNodeBase previousWord = null;
string previousWordRecognizedString = "";
foreach (ContextNodeBase inkWord in
theInkAnalyzerBase.FindNodesOfType(ContextNodeTypeBase.InkWord, lineNode))
{
string inkWordRecognizedString = "";
if (inkWord.ContainsPropertyData(PropertyGuidsForContextNodesBase.RecognizedString))
{
inkWordRecognizedString =
(string)inkWord.GetPropertyData(PropertyGuidsForContextNodesBase.RecognizedString);
}
// TODO: I think I can get rid of this and just assign the previous string
// to the current string
if (previousWord != null &&
previousWord.ContainsPropertyData(PropertyGuidsForContextNodesBase.RecognizedString))
{
previousWordRecognizedString =
(string)previousWord.GetPropertyData(PropertyGuidsForContextNodesBase.RecognizedString);
}
if (previousWordRecognizedString != "" &&
previousWordRecognizedString == inkWordRecognizedString)
{
Strokes previousWordStrokes = theInk.CreateStrokes(previousWord.GetStrokeIds());
Strokes inkWordStrokes = theInk.CreateStrokes(previousWord.GetStrokeIds());
foreach (Stroke stroke in previousWordStrokes)
stroke.DrawingAttributes = new DrawingAttributes(Color.Red);
foreach (Stroke stroke in inkWordStrokes)
stroke.DrawingAttributes = new DrawingAttributes(Color.Red);
}
previousWord = inkWord;
}
}
継承階層
System.Object
System.Windows.Ink.AnalysisCore.ContextNodeBaseCollection
スレッド セーフ
この型のすべてのパブリック static (Visual Basic では Shared) メンバは、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォーム
Windows Vista, Windows XP SP2, Windows Server 2003
.NET Framework および .NET Compact Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。
バージョン情報
.NET Framework
サポート対象 : 3.0