ContextLinkBase 클래스
업데이트: 2007년 11월
ContextLink에 대한 기본 클래스입니다. 부모/자식 관계가 아닌 두 ContextNodeBase 개체 간의 관계를 나타냅니다.
네임스페이스: System.Windows.Ink.AnalysisCore
어셈블리: IACore(IACore.dll)
구문
‘선언
Public Class ContextLinkBase
‘사용 방법
Dim instance As ContextLinkBase
public class ContextLinkBase
public ref class ContextLinkBase
public class ContextLinkBase
public class ContextLinkBase
설명
ContextLinkBase 개체로 표시되는 관계의 예제는 다음과 같습니다.
InkDrawing 노드로 둘러싸인 Paragraph 노드입니다. ContextLinkBase 개체가 만들어져 Paragraph 노드와 InkDrawing 노드 모두의 Links 속성에 추가됩니다. SourceNode는 InkDrawing 노드이고 DestinationNode는 Paragraph 노드입니다.
AnalysisHint 노드 및 WritingRegion 노드입니다. 잉크 분석 시 AnalysisHint 노드를 사용하면 WritingRegion 노드와 AnalysisHint() 노드 사이에 ContextLinkBase가 만들어집니다. SourceNode는 AnalysisHint 노드이고 DestinationNode는 WritingRegion 노드입니다.
순서도처럼 해당 노드 사이에 선이 그려진 두 InkDrawing 노드
SourceNode와 DestinationNode 사이의 관계를 확인하려면 GetPropertyData 메서드를 호출하여 SemanticType을 가져옵니다.
예제
다음 예제에서는 ContextNodeBase 노드인 selectedNode에 링크된 모든 노드를 찾습니다. selectedNode가 대상 노드가 아닌 경우 destinationNodes라는 ArrayList에 대상 노드가 추가됩니다. selectedNode가 소스 노드가 아닌 경우 sourceNodes라는 ArrayList에 소스 노드가 추가됩니다.
Dim destinationNodes As ArrayList = New ArrayList()
Dim sourceNodes As ArrayList = New ArrayList()
' Find all the nodes that link to the currently selected node.
For Each link As Microsoft.Ink.ContextLink In selectedNode.Links
If link.DestinationNode <> selectedNode Then
destinationNodes.Add(link.DestinationNode)
End If
If link.SourceNode <> selectedNode Then
sourceNodes.Add(link.SourceNode)
End If
Next
ArrayList destinationNodes = new ArrayList();
ArrayList sourceNodes = new ArrayList();
// Find all the nodes that link to the currently selected node.
foreach (Microsoft.Ink.ContextLink link in selectedNode.Links)
{
if (link.DestinationNode != selectedNode)
{
destinationNodes.Add(link.DestinationNode);
}
if (link.SourceNode != selectedNode)
{
sourceNodes.Add(link.SourceNode);
}
}
다음 예제에서는 이름이 theInkAnalyzerWithHint인 InkAnalyzer의 노드 트리에서 모든 WritingRegionNode 개체를 찾습니다. 그런 다음 값이 "IS_DATE_FULLDATE"인 Factoid와 함께 PropertyGuidsForAnalysisHintsBase에 링크된 노드를 이름이 writingRegionsWithFactoids인 ContextNodeCollection에 배치합니다.
Dim writingRegionsWithFactoids As _
New ContextNodeBaseCollection(Me.theInkAnalyzerWithHint)
Dim allWritingRegions As ContextNodeBaseCollection = _
Me.theInkAnalyzerWithHint.FindNodesOfType( _
ContextNodeTypeBase.WritingRegion)
Dim writingRegion As ContextNodeBase
For Each writingRegion In allWritingRegions
' See if they are linked to any factoid
Dim link As ContextLinkBase
For Each link In writingRegion.Links
If link.SourceNode.Type = ContextNodeType.AnalysisHint And _
link.SourceNode.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.Factoid) Then
If CType(link.SourceNode.GetPropertyData(PropertyGuidsForAnalysisHintsBase.Factoid), String) _
= "IS_DATE_FULLDATE" Then
writingRegionsWithFactoids.Add(writingRegion)
End If
End If
Next link
Next writingRegion
ContextNodeBaseCollection writingRegionsWithFactoids =
new ContextNodeBaseCollection(this.theInkAnalyzerBaseWithHint);
ContextNodeBaseCollection allWritingRegions =
this.theInkAnalyzerBaseWithHint.FindNodesOfType(
System.Windows.Ink.AnalysisCore.ContextNodeTypeBase.WritingRegion);
foreach (ContextNodeBase writingRegion in allWritingRegions)
{
// See if they are linked to any factoid
foreach (ContextLinkBase link in writingRegion.Links)
{
if (link.SourceNode.Type == ContextNodeTypeBase.AnalysisHint &&
link.SourceNode.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.Factoid))
{
if ((string) link.SourceNode.GetPropertyData(PropertyGuidsForAnalysisHintsBase.Factoid)
== "IS_DATE_FULLDATE")
{
writingRegionsWithFactoids.Add(writingRegion);
}
}
}
}
상속 계층 구조
System.Object
System.Windows.Ink.AnalysisCore.ContextLinkBase
스레드로부터의 안전성
이 형식의 모든 공용 static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.
플랫폼
Windows Vista, Windows XP SP2, Windows Server 2003
.NET Framework 및 .NET Compact Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.
버전 정보
.NET Framework
3.0에서 지원