private void CheckLogicalTree(DependencyObject root)
{
var children = LogicalTreeHelper.GetChildren(root);
foreach (var child in children.OfType<DependencyObject>())
{
if (LogicalTreeHelper.GetParent(child) != root)
{
Debug.WriteLine(string.Format("Incorrect logical parent for {0}", this.GetDebugInfo(child)));
Debug.WriteLine(string.Format("\tExpected: {0}", root));
Debug.WriteLine(string.Format("\tFound: {0}", LogicalTreeHelper.GetParent(child)));
}
this.CheckLogicalTree(child);
}
}