ContextNode.Type 属性
获取此 ContextNode 对象的上下文节点类型。
命名空间: System.Windows.Ink
程序集: IAWinFX(在 IAWinFX.dll 中)
语法
声明
Public ReadOnly Property Type As Guid
用法
Dim instance As ContextNode
Dim value As Guid
value = instance.Type
public Guid Type { get; }
public:
property Guid Type {
Guid get ();
}
/** @property */
public Guid get_Type()
public function get Type () : Guid
属性值
类型:System.Guid
此 ContextNode 对象的上下文节点类型。
示例
下面的示例演示如何使用名为 selectedNode 的 ContextNode 对象的 Type 属性。根据节点类型的不同,TextBox (selectedResultsTextBox) 的文本填充方式也不相同。大多数情况下将使用已识别字符串,但是对于 InkWord,将使用该行的已识别字符串,并且该单词在 TextBox 中处于选中状态。
If selectedNode.Type = ContextNodeType.WritingRegion Then
Dim writingRegion As WritingRegionNode = CType(selectedNode, WritingRegionNode)
selectedResultsTextBox.Text = writingRegion.GetRecognizedString()
ElseIf selectedNode.Type = ContextNodeType.Paragraph Then
Dim paragraph As ParagraphNode = CType(selectedNode, ParagraphNode)
selectedResultsTextBox.Text = paragraph.GetRecognizedString()
ElseIf selectedNode.Type = ContextNodeType.Line Then
Dim line As LineNode = CType(selectedNode, LineNode)
selectedResultsTextBox.Text = line.GetRecognizedString()
ElseIf selectedNode.Type = ContextNodeType.InkWord Then
Dim inkWord As InkWordNode = CType(selectedNode, InkWordNode)
Dim parentNode As ContextNode = inkWord.ParentNode
If TypeOf parentNode Is LineNode Then
Dim parentLine As LineNode = CType(parentNode, LineNode)
' Put parent line's recognized string into the text box
selectedResultsTextBox.Text = parentLine.GetRecognizedString()
' Select the text that corresponds to the ink word
Dim subNodes As New ContextNodeCollection(theInkAnalyzer)
subNodes.Add(inkWord)
Dim start As Integer
Dim length As Integer
parentLine.GetTextRangeFromNodes(subNodes, start, length)
If start >= 0 AndAlso length > 0 Then
selectedResultsTextBox.Select(start, length)
End If
End If
ElseIf selectedNode.Type = ContextNodeType.InkDrawing Then
Dim drawingNode As InkDrawingNode = CType(selectedNode, InkDrawingNode)
selectedResultsTextBox.Text = drawingNode.GetShapeName()
ElseIf selectedNode.Type = ContextNodeType.InkBullet Then
Dim bulletNode As InkBulletNode = CType(selectedNode, InkBulletNode)
selectedResultsTextBox.Text = bulletNode.GetRecognizedString()
ElseIf selectedNode.Type = ContextNodeType.CustomRecognizer Then
Dim customRecognizer As CustomRecognizerNode = CType(selectedNode, CustomRecognizerNode)
selectedResultsTextBox.Text = customRecognizer.GetRecognizedString()
ElseIf selectedNode.Type = ContextNodeType.Object Then
Dim selectedObject As ObjectNode = CType(selectedNode, ObjectNode)
selectedResultsTextBox.Text = selectedObject.GetRecognizedString()
Else
selectedResultsTextBox.Text = ""
End If
if (selectedNode.Type == ContextNodeType.WritingRegion)
{
WritingRegionNode writingRegion = (WritingRegionNode)selectedNode;
selectedResultsTextBox.Text = writingRegion.GetRecognizedString();
}
else if (selectedNode.Type == ContextNodeType.Paragraph)
{
ParagraphNode paragraph = (ParagraphNode)selectedNode;
selectedResultsTextBox.Text = paragraph.GetRecognizedString();
}
else if (selectedNode.Type == ContextNodeType.Line)
{
LineNode line = (LineNode)selectedNode;
selectedResultsTextBox.Text = line.GetRecognizedString();
}
else if (selectedNode.Type == ContextNodeType.InkWord)
{
InkWordNode inkWord = (InkWordNode)selectedNode;
ContextNode parentNode = inkWord.ParentNode;
if (parentNode is LineNode)
{
LineNode parentLine = (LineNode)parentNode;
// Put parent line's recognized string into the text box
selectedResultsTextBox.Text = parentLine.GetRecognizedString();
// Select the text that corresponds to the ink word
ContextNodeCollection subNodes = new ContextNodeCollection(theInkAnalyzer);
subNodes.Add(inkWord);
int start;
int length;
parentLine.GetTextRangeFromNodes(subNodes, out start, out length);
if (start >= 0 && length > 0)
{
selectedResultsTextBox.Select(start, length);
}
}
}
else if (selectedNode.Type == ContextNodeType.InkDrawing)
{
InkDrawingNode drawingNode = (InkDrawingNode)selectedNode;
selectedResultsTextBox.Text = drawingNode.GetShapeName();
}
else if (selectedNode.Type == ContextNodeType.InkBullet)
{
InkBulletNode bulletNode = (InkBulletNode)selectedNode;
selectedResultsTextBox.Text = bulletNode.GetRecognizedString();
}
else if (selectedNode.Type == ContextNodeType.CustomRecognizer)
{
CustomRecognizerNode customRecognizer = (CustomRecognizerNode)selectedNode;
selectedResultsTextBox.Text = customRecognizer.GetRecognizedString();
}
else if (selectedNode.Type == ContextNodeType.Object)
{
ObjectNode selectedObject = (ObjectNode)selectedNode;
selectedResultsTextBox.Text = selectedObject.GetRecognizedString();
}
else
{
selectedResultsTextBox.Text = "";
}
平台
Windows Vista
.NET Framework 和 .NET Compact Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。
版本信息
.NET Framework
受以下版本支持:3.0
另请参见
参考
System.Windows.Ink.ContextNodeType
InkAnalyzerFindNodesOfType(Guid, array<Int32[])