Share via


InkAnalyzer.FindNodes Method (MatchesCriteriaCallback, Object, ContextNode)

Returns the ContextNode objects that are descendants of the specified ContextNode and that match the specified criteria.

Namespace:  Microsoft.Ink
Assembly:  Microsoft.Ink.Analysis (in Microsoft.Ink.Analysis.dll)

Syntax

'Declaration
Public Function FindNodes ( _
    criteria As MatchesCriteriaCallback, _
    data As Object, _
    nodeToSearch As ContextNode _
) As ContextNodeCollection
'Usage
Dim instance As InkAnalyzer 
Dim criteria As MatchesCriteriaCallback 
Dim data As Object 
Dim nodeToSearch As ContextNode 
Dim returnValue As ContextNodeCollection 

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

Parameters

  • data
    Type: System.Object

    Optional extra data that may be passed into the delegate function. This method passes this data to the delegate with each call and does not modify or examine it.

Return Value

Type: Microsoft.Ink.ContextNodeCollection
A ContextNodeCollection containing all of the ContextNode objects that are descendants of the specified node and that match the specified criteria.

Examples

The following example finds the collection of ContextNode objects in an InkAnalyzer, theInkAnalyzer, that satisfy the criteria specified in the LineIsLowerThan delegate. The 32-bit signed integer, yValue, is passed to the LineIsLowerThan delegate. The search is confined to the descendants of the WritingRegionNode, writingRegion.

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

The following example defines the LineIsLowerThan method, which returns true if the ContextNode is a LineNode and if the bottom of the bounding box is lower than an integer that is passed in. (Note that higher y-coordinate values mean lower on the screen.) Therefore, the nodesBelowYValue collection contains all lines with strokes below the value, 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);
        }

Platforms

Windows 7, Windows Vista, Windows Server 2008 R2, Windows Server 2008

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Version Information

.NET Framework

Supported in: 3.0

See Also

Reference

InkAnalyzer Class

InkAnalyzer Members

FindNodes Overload

Microsoft.Ink Namespace

InkAnalyzer.FindInkLeafNodes

InkAnalyzer.FindLeafNodes

InkAnalyzer.FindNode

InkAnalyzer.FindNodes

InkAnalyzer.FindNodesOfType