diff --git a/src/Avalonia.Styling/LogicalTree/LogicalExtensions.cs b/src/Avalonia.Styling/LogicalTree/LogicalExtensions.cs
index bd05796578..458ab0fce2 100644
--- a/src/Avalonia.Styling/LogicalTree/LogicalExtensions.cs
+++ b/src/Avalonia.Styling/LogicalTree/LogicalExtensions.cs
@@ -3,8 +3,16 @@ using System.Collections.Generic;
namespace Avalonia.LogicalTree
{
+ ///
+ /// Provides extension methods for working with the logical tree.
+ ///
public static class LogicalExtensions
{
+ ///
+ /// Enumerates the ancestors of an in the logical tree.
+ ///
+ /// The logical.
+ /// The logical's ancestors.
public static IEnumerable GetLogicalAncestors(this ILogical logical)
{
Contract.Requires(logical != null);
@@ -18,6 +26,11 @@ namespace Avalonia.LogicalTree
}
}
+ ///
+ /// Enumerates an and its ancestors in the logical tree.
+ ///
+ /// The logical.
+ /// The logical and its ancestors.
public static IEnumerable GetSelfAndLogicalAncestors(this ILogical logical)
{
yield return logical;
@@ -57,11 +70,21 @@ namespace Avalonia.LogicalTree
return null;
}
+ ///
+ /// Enumerates the children of an in the logical tree.
+ ///
+ /// The logical.
+ /// The logical children.
public static IEnumerable GetLogicalChildren(this ILogical logical)
{
return logical.LogicalChildren;
}
+ ///
+ /// Enumerates the descendants of an in the logical tree.
+ ///
+ /// The logical.
+ /// The logical's ancestors.
public static IEnumerable GetLogicalDescendants(this ILogical logical)
{
foreach (ILogical child in logical.LogicalChildren)
@@ -75,6 +98,11 @@ namespace Avalonia.LogicalTree
}
}
+ ///
+ /// Enumerates an and its descendants in the logical tree.
+ ///
+ /// The logical.
+ /// The logical and its ancestors.
public static IEnumerable GetSelfAndLogicalDescendants(this ILogical logical)
{
yield return logical;
@@ -107,16 +135,34 @@ namespace Avalonia.LogicalTree
return FindDescendantOfTypeCore(logical);
}
+ ///
+ /// Gets the logical parent of an .
+ ///
+ /// The logical.
+ /// The parent, or null if the logical is unparented.
public static ILogical GetLogicalParent(this ILogical logical)
{
return logical.LogicalParent;
}
+ ///
+ /// Gets the logical parent of an .
+ ///
+ /// The type of the logical parent.
+ /// The logical.
+ ///
+ /// The parent, or null if the logical is unparented or its parent is not of type .
+ ///
public static T GetLogicalParent(this ILogical logical) where T : class
{
return logical.LogicalParent as T;
}
+ ///
+ /// Enumerates the siblings of an in the logical tree.
+ ///
+ /// The logical.
+ /// The logical siblings.
public static IEnumerable GetLogicalSiblings(this ILogical logical)
{
ILogical parent = logical.LogicalParent;
@@ -130,6 +176,15 @@ namespace Avalonia.LogicalTree
}
}
+ ///
+ /// Tests whether an is an ancestor of another logical.
+ ///
+ /// The logical.
+ /// The potential descendant.
+ ///
+ /// True if is an ancestor of ;
+ /// otherwise false.
+ ///
public static bool IsLogicalAncestorOf(this ILogical logical, ILogical target)
{
ILogical current = target?.LogicalParent;