В настоящее время у меня есть эта строка кода, которую я хочу работать в всех случаях:
var visualWindowContent = (UIElement)window.Content;
Этот подход будет работать, когда Window.Content является элементом UIElement. Но что делать, когда это невизуальный объект, к которому затем применяется DataTemplate? Приведенная выше строка кода выдаст неверное исключение. Так как же получить визуальное содержимое окна в этом случае?
РЕДАКТИРОВАТЬ: Сначала я сказал, что VisualTreeHelper.GetChild (window, 0) вернул ноль, но на самом деле это было не ноль. Моя цель здесь - получить корневой слой adorner, передавая visualWindowContent в AdornerLayer.GetAdornerLayer. Оказывается, что это было с ошибкой (возвращало ноль), когда прошло непосредственный визуальный дочерний элемент окна, так как этот узел не был достаточно глубоко в визуальном дереве, то есть потомок AdornerDectorator.