InkAnalyzer.FindNodes 方法 (MatchesCriteriaCallback, Object, ContextNode)
返回作为指定 ContextNode 的后代且符合指定条件的 ContextNode 对象。
命名空间: Microsoft.Ink
程序集: Microsoft.Ink.Analysis(在 Microsoft.Ink.Analysis.dll 中)
语法
声明
Public Function FindNodes ( _
criteria As MatchesCriteriaCallback, _
data As Object, _
nodeToSearch As ContextNode _
) As ContextNodeCollection
用法
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 ContextNodeCollection FindNodes(
MatchesCriteriaCallback criteria,
Object data,
ContextNode nodeToSearch
)
public function FindNodes(
criteria : MatchesCriteriaCallback,
data : Object,
nodeToSearch : ContextNode
) : ContextNodeCollection
参数
- criteria
类型:Microsoft.Ink.MatchesCriteriaCallback
用以确定 ContextNode 是否符合其指定条件的委托函数。
- data
类型:System.Object
可传入该委托函数的可选的其他数据。此方法在每次调用中将这些数据传递给该委托,并不修改或检查这些数据。
- nodeToSearch
类型:Microsoft.Ink.ContextNode
要搜索其后代的 ContextNode。
返回值
类型:Microsoft.Ink.ContextNodeCollection
包含作为指定节点的后代且符合指定条件的所有 ContextNode 对象的 ContextNodeCollection。
示例
下面的示例在 InkAnalyzer (theInkAnalyzer) 中查找符合 LineIsLowerThan 委托中所指定的条件的 ContextNode 对象的集合。一个 32 位有符号整数 yValue 将传递给 LineIsLowerThan 委托。搜索范围限制为 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);
下面的示例定义 LineIsLowerThan 方法,如果 ContextNode 为 LineNode 且边界框的底部低于传入的整数所指示的位置,则该方法返回 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