업데이트: 2007년 11월
ContextNode 개체에서 발생할 수 있는 형식 확인을 지정하는 값을 정의합니다.
이 열거형에는 멤버 값을 비트로 조합할 수 있는 FlagsAttribute 특성이 있습니다.
네임스페이스: System.Windows.Ink
어셈블리: IAWinFX(IAWinFX.dll)
구문
‘선언
<FlagsAttribute> _
Public Enumeration ConfirmationType
‘사용 방법
Dim instance As ConfirmationType
[FlagsAttribute]
public enum ConfirmationType
[FlagsAttribute]
public enum class ConfirmationType
/** @attribute FlagsAttribute */
public enum ConfirmationType
public enum ConfirmationType
멤버
| 멤버 이름 | 설명 | |
|---|---|---|
| None | 확인을 적용하지 않도록 지정합니다. InkAnalyzer는 필요에 따라 컨텍스트 노드나 해당 하위 항목을 변경할 수 있습니다. | |
| NodeTypeAndProperties | InkAnalyzer 가 지정된 컨텍스트 노드의 형식이나 속성을 변경할 수 없도록 지정합니다. | |
| TopBoundary | 지정된 ContextNode의 위쪽 경계가 현재의 위쪽 경계를 넘어설 수 있게 하는 잉크 추가 및 다른 ContextNode 개체와의 병합을 포함한 작업을 InkAnalyzer가 수행하지 않도록 지정합니다. |
설명
NodeTypeAndProperties는 InkWord 및 InkDrawing 형식의 ContextNode 개체에 대해서만 사용할 수 있습니다. 그렇지 않으면 InvalidOperationException이 throw됩니다.
InkAnalyzer가 잉크 추가 또는 다른 ContextNode 개체와의 병합을 포함한 어떠한 작업도 수행하지 않도록 하려면 TopBoundary를 사용합니다. 그렇지 않은 경우에는 ContextNode의 위쪽 경계가 현재 경계를 넘어설 수 있으므로 ContextNode가 확장될 수 있습니다. 예를 들어 응용 프로그램 사용자가 단락을 쓴다고 가정합니다. 분석 시 InkAnalyzer는 해당 단락에 대한 ParagraphNode를 만듭니다. 그러면 응용 프로그램은 Confirm을 호출하고 TopBoundary를 전달할 수 있습니다. 사용자가 단락 위에 새 잉크를 추가하면 InkAnalyzer가 새 잉크에 대한 분석을 수행할 때 InkAnalyzer가 새 잉크를 확인된 ParagraphNode로 통합하지 않습니다.
참고
TopBoundary를 사용할 때는 ContextNode가 다른 방향으로 계속 확장될 수 있습니다. 스트로크를 삭제하면 ContextNode의 위쪽 경계가 아래로 이동할 수 있습니다. ContextNode를 변환하여 위치를 변경할 수 있지만 새 위치에 추가 잉크를 병합할 수는 없습니다.
이 TopBoundary는 단락 노드에만 사용할 수 있습니다.
예제
다음 예제에서는 사용자가 올바르게 분석된 스트로크를 나타낼 수 있습니다. 이 예제는 이름이 theInkCanvas인 InkCanvas에 대한 PreviewMouseUp 이벤트의 이벤트 처리기입니다. 이름이 confirmMode인 CheckBox를 선택한 경우 사용자는 단어를 클릭하여 해당 단어를 확인합니다(또는 노드가 이미 확인된 경우에는 확인을 해제). 이 예제에서는 StrokeCollection.HitTest(Point) 및 FindNodesOfType을 사용하여 적절한 노드를 찾습니다. 노드를 찾은 후 Confirm을 호출하여 확인 여부를 전환합니다. 마지막으로 TreeView를 다시 빌드하여 확인된 노드를 표시하고 PreviewMouseUp 이벤트를 처리합니다.
Sub theInkCanvas_PreviewMouseDown(ByVal sender As Object, ByVal e As System.Windows.Input.MouseButtonEventArgs)
If Me.confirmMode.IsChecked Then
' Find the ink word nodes that correspond to those strokes
Dim position As Point = e.GetPosition(theInkCanvas)
Dim hitStrokes As StrokeCollection = theInkCanvas.Strokes.HitTest(position)
Dim selectedNodes As ContextNodeCollection = _
Me.theInkAnalyzer.FindNodesOfType(ContextNodeType.InkWord, _
hitStrokes)
' Toggle the confirmation type on these nodes
Dim selectedNode As ContextNode
For Each selectedNode In selectedNodes
If selectedNode.IsConfirmed(ConfirmationType.NodeTypeAndProperties) Then
selectedNode.Confirm(ConfirmationType.None)
Else
selectedNode.Confirm(ConfirmationType.NodeTypeAndProperties)
End If
Next selectedNode
' Rebuild the TreeView to show which context nodes are confirmed.
Me.BuildTree()
' Handle the MouseDown event to prevent the InkCanvas from
' selecting the stroke.
e.Handled = True
End If
End Sub 'theInkCanvas_PreviewMouseDown
void theInkCanvas_PreviewMouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
if ((bool)this.confirmMode.IsChecked)
{
// Find the ink word nodes that correspond to those strokes
Point position = e.GetPosition(theInkCanvas);
StrokeCollection hitStrokes = theInkCanvas.Strokes.HitTest(position);
ContextNodeCollection selectedNodes =
this.theInkAnalyzer.FindNodesOfType(ContextNodeType.InkWord,
hitStrokes);
// Toggle the confirmation type on these nodes
foreach (ContextNode selectedNode in selectedNodes)
{
if (selectedNode.IsConfirmed(ConfirmationType.NodeTypeAndProperties))
{
selectedNode.Confirm(ConfirmationType.None);
}
else
{
selectedNode.Confirm(ConfirmationType.NodeTypeAndProperties);
}
}
// Rebuild the TreeView to show which context nodes are confirmed.
this.BuildTree();
// Handle the MouseDown event to prevent the InkCanvas from
// selecting the stroke.
e.Handled = true;
}
}
플랫폼
Windows Vista
.NET Framework 및 .NET Compact Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.
버전 정보
.NET Framework
3.0에서 지원
참고 항목
참조
ContextNodeIsNodeTypeAndPropertiesConfirmed()