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 可以根据需要自由更改上下文节点或其任何后代。
NodeTypeAndProperties 指定 InkAnalyzer 不能更改指定上下文节点的类型或任何属性。
TopBoundary 指定 InkAnalyzer 不会执行将会导致指定 ContextNode 的上边界超出其当前上边界的操作(包括添加墨迹或与其他 ContextNode 对象合并)。

备注

只能将 NodeTypeAndProperties 用于类型为 InkWordInkDrawingContextNode 对象。否则会引发 InvalidOperationException

使用 TopBoundary 可确保 InkAnalyzer 不执行任何操作(包括添加墨迹或与其他 ContextNode 对象合并)。否则,ContextNode 的上边界可能会超出当前边界,从而导致 ContextNode 扩展。例如,假定某个应用程序的用户书写了一个段落。在分析过程中,InkAnalyzer 会为该段落创建一个 ParagraphNode。然后应用程序可以调用 Confirm,同时传入 TopBoundary。如果用户在该段落之上添加新的墨迹,那么当 InkAnalyzer 对新的墨迹执行分析时,InkAnalyzer 不会将新的墨迹合并到已确认的 ParagraphNode 中。

备注

在使用 TopBoundary 时,ContextNode 可以继续在其他方向上扩展。删除笔画可能会导致 ContextNode 的上边界向下移动。转换 ContextNode 可能会导致位置发生更改,但不会允许其他墨迹在新的位置中合并。

此 TopBoundary 仅适用于段落节点。

示例

在下面的示例中,用户可以指示已对哪些笔画进行了正确分析。此示例是名为 theInkCanvas 的 InkCanvas 上的 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

另请参见

参考

System.Windows.Ink 命名空间

ContextNode.Confirm

ContextNodeIsNodeTypeAndPropertiesConfirmed()