Вы смотрите не на тот элемент Border
.Иерархия контейнера предметов в вашем случае выглядит как Border
-> ContentControl
-> ContentPresenter
-> Border
(это ваше).Поэтому вам нужно пойти глубже по дочерней иерархии вашего контейнера, чтобы найти желаемую границу.
Следующий код рекурсивно ищет дочерние элементы UIElement
и дает некоторый отладочный вывод, чтобы вы могли увидеть, насколько глубокоидет.Он остановится, когда найдет элемент управления с именем "border":
private UIElement GetMyBorder(UIElement container)
{
if (container is FrameworkElement && ((FrameworkElement)container).Name == "border")
return container;
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(container); i++)
{
var child = (FrameworkElement)VisualTreeHelper.GetChild(container, i);
System.Diagnostics.Debug.WriteLine("Found child "+ child.ToString());
System.Diagnostics.Debug.WriteLine("Going one level deeper...");
UIElement foundElement = GetMyBorder(child);
if (foundElement != null)
return foundElement;
}
return null;
}
Чтобы использовать его:
Border content = (Border)GetMyBorder(container);