ConfirmationType 列舉型別
定義值,這些值會指定 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 可以視需要隨意變更內容節點或任何其子代 (Descendant)。 | |
NodeTypeAndProperties | 指定 InkAnalyzer 無法變更所指定之內容節點的型別或任何屬性。 | |
TopBoundary | 指定 InkAnalyzer 將不執行作業,包括加入筆墨或與其他 ContextNode 物件合併,後者會導致指定之 ContextNode 的頂端界限移動超過其目前的頂端界限。 |
備註
您只能對型別為 InkWord 和 InkDrawing 的 ContextNode 物件使用 NodeTypeAndProperties,否則會擲回 InvalidOperationException。
請使用 TopBoundary 以確保 InkAnalyzer「不會」執行任何作業,包括加入筆墨或與其他 ContextNode 物件合併。否則,ContextNode 的頂端界限可能會超出目前界限,而導致擴大 ContextNode。例如,假設應用程式的使用者書寫一個段落。在分析期間,InkAnalyzer 會為該段落建立 ParagraphNode。應用程式接著可以呼叫 Confirm 傳入 TopBoundary。如果使用者在段落上方加入新筆墨,InkAnalyzer 對新筆墨執行分析時,InkAnalyzer 並不會將新筆墨併入已確認的 ParagraphNode。
注意事項: |
---|
使用 TopBoundary 時,ContextNode 可以往其他方向繼續擴大。刪除筆劃會使 ContextNode 的頂端界限下移。轉換 ContextNode 會使位置發生變更,但不會使其他筆墨合併到新的位置。 |
這個 TopBoundary 只適用於段落節點。
範例
下列範例允許使用者指出已經過正確分析的筆劃。這個範例是 InkCanvas (名為 theInkCanvas) 上之 PreviewMouseUp 事件的事件處理常式。選取 CheckBox (confirmMode) 時,使用者按一下文字即可加以確認 (或在節點已經過確認時關閉確認)。這個範例會使用 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()