LogicalTreeHelper.FindLogicalNode(DependencyObject, String) LogicalTreeHelper.FindLogicalNode(DependencyObject, String) LogicalTreeHelper.FindLogicalNode(DependencyObject, String) LogicalTreeHelper.FindLogicalNode(DependencyObject, String) Method


指定された名前を持つオブジェクトを検索して返します。Attempts to find and return an object that has the specified name. 検索は指定されたオブジェクトから開始され、論理ツリーのサブノードに続きます。The search starts from the specified object and continues into subnodes of the logical tree.

 static System::Windows::DependencyObject ^ FindLogicalNode(System::Windows::DependencyObject ^ logicalTreeNode, System::String ^ elementName);
public static System.Windows.DependencyObject FindLogicalNode (System.Windows.DependencyObject logicalTreeNode, string elementName);
static member FindLogicalNode : System.Windows.DependencyObject * string -> System.Windows.DependencyObject
Public Shared Function FindLogicalNode (logicalTreeNode As DependencyObject, elementName As String) As DependencyObject


DependencyObject DependencyObject DependencyObject DependencyObject

検索を開始するオブジェクト。The object to start searching from. このオブジェクトは、FrameworkElementFrameworkContentElement のどちらかである必要があります。This object must be either a FrameworkElement or a FrameworkContentElement.

String String String String

検索するオブジェクトの名前。The name of the object to find.


一致する名前が見つかった場合は、その名前を持つオブジェクト。論理ツリー内に一致する名前が見つからなかった場合は、null を返します。The object with the matching name, if one is found; returns null if no matching name was found in the logical tree.


メソッドFrameworkContentElement.FindNameとはFrameworkElement.FindName 、一見、にFindLogicalNode似ていますが、異なるロジックによって動作します。The methods FrameworkContentElement.FindName and FrameworkElement.FindName are superficially similar to FindLogicalNode, but operate by different logic:

  • FindLogicalNode検索方向は、子オブジェクト (ツリーの下) に向かっています。 FindNameメソッドの検索方向は親オブジェクト (ツリーの上) に向かっています。The search direction for FindLogicalNode is toward child objects (down the tree); the search direction for the FindName methods is towards parent objects (up the tree).

  • メソッドFindNameは、XAML 名前スコープの概念によって管理されます。The FindName methods are governed by the concept of a XAML namescope. XAML FindName名前空間は一意性を強制するため、を使用すると、その名前のオブジェクトが1つだけ存在することが保証されます。Using FindName you are guaranteed that only one object of that name exists, because XAML namescopes enforce uniqueness. これに対しFindLogicalNode 、では、xaml 名前スコープが無視され、検索中に xaml 名前スコープの境界を越えることがあります。In contrast, FindLogicalNode ignores XAML namescope and might cross XAML namescope boundaries during the search. そのため、境界を越えた場合、 elementName名前の一意性は保証されません。As such, there is no guarantee of uniqueness of the elementName name once boundaries are crossed. XAML 名前スコープの詳細については、「 WPF Xaml 名前スコープ」を参照してください。For more information about XAML namescopes, see WPF XAML Namescopes.