InkAnalyzer.FindNodes 方法 (MatchesCriteriaCallback, Object)

返回符合指定条件的所有 ContextNode 对象。

命名空间:  Microsoft.Ink
程序集:  Microsoft.Ink.Analysis(在 Microsoft.Ink.Analysis.dll 中)

语法

声明
Public Function FindNodes ( _
    criteria As MatchesCriteriaCallback, _
    data As Object _
) As ContextNodeCollection
用法
Dim instance As InkAnalyzer
Dim criteria As MatchesCriteriaCallback
Dim data As Object
Dim returnValue As ContextNodeCollection

returnValue = instance.FindNodes(criteria, _
    data)
public ContextNodeCollection FindNodes(
    MatchesCriteriaCallback criteria,
    Object data
)
public:
ContextNodeCollection^ FindNodes(
    MatchesCriteriaCallback^ criteria, 
    Object^ data
)
public ContextNodeCollection FindNodes(
    MatchesCriteriaCallback criteria,
    Object data
)
public function FindNodes(
    criteria : MatchesCriteriaCallback, 
    data : Object
) : ContextNodeCollection

参数

  • data
    类型:System.Object
    可传入该委托函数的可选的其他数据。此方法在每次调用中将这些数据传递给该委托,并不修改或检查这些数据。

返回值

类型:Microsoft.Ink.ContextNodeCollection
包含符合指定条件的所有 ContextNode 对象的 ContextNodeCollection

示例

下面的示例在 InkAnalyzer (theInkAnalyzer) 中查找符合 LineIsLowerThan 委托中所指定的条件的上下文节点的集合。一个 32 位有符号整数 yValue 将传递给 LineIsLowerThan 委托。

Dim lineIsLowerThanCallback As _
    New Microsoft.Ink.MatchesCriteriaCallback(AddressOf LineIsLowerThan)
Dim nodesBelowYValue As ContextNodeCollection = _
    theInkAnalyzer.FindNodes(lineIsLowerThanCallback, yValue)
            Microsoft.Ink.MatchesCriteriaCallback
                lineIsLowerThanCallback = new Microsoft.Ink.MatchesCriteriaCallback(LineIsLowerThan);
            ContextNodeCollection nodesBelowYValue =
                theInkAnalyzer.FindNodes(lineIsLowerThanCallback, yValue);

下面的示例定义 LineIsLowerThan 方法,如果 ContextNodeLineNode 且边界框的底部低于传入的整数所指示的位置,则该方法返回 true。请注意,y 坐标值越高意味着在屏幕上的位置越低。因此,nodesBelowYValue 集合包含笔画位于 yValue 值所指示的位置之下的所有行。

Public Function LineIsLowerThan(ByVal node As Microsoft.Ink.ContextNode, _
                                ByVal data As Object) As Boolean

    ' Return false if not a line
    If Not TypeOf node Is LineNode Then
        Return False
    End If
    ' Check if bottom is lower than yValue passed in
    Dim yValue As Integer = Fix(data)
    Return node.Location.GetBounds().Bottom > yValue

End Function 'LineIsLowerThan

        public bool LineIsLowerThan(Microsoft.Ink.ContextNode node, object data)
        {
            // Return false if not a line
            if (!(node is LineNode))
                return false;

            // Check if bottom is lower than yValue passed in
            int yValue = (int)data;
            return (node.Location.GetBounds().Bottom > yValue);
        }

平台

Windows Vista

.NET Framework 和 .NET Compact Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求

版本信息

.NET Framework

受以下版本支持:3.0

另请参见

参考

InkAnalyzer 类

InkAnalyzer 成员

FindNodes 重载

Microsoft.Ink 命名空间

InkAnalyzer.FindInkLeafNodes

InkAnalyzer.FindLeafNodes

InkAnalyzer.FindNode

InkAnalyzer.FindNodesOfType