Свойство Parent
относится к логическому дереву, и в документации отмечается, что «Родитель может быть нулевым в тех случаях, когда был создан экземпляр элемента, но не привязан ни к какому логическому дереву, которое в конечном итоге подключается к корневому элементу уровня страницы,или объект приложения. "Например, корневой элемент DataTemplate
, созданный в ListBox
, имеет нулевой родительский элемент.
Попробуйте вместо этого использовать VisualTreeHelper.GetParent
.Визуальное дерево - это низкоуровневое представление о том, как организованы элементы WPF, и оно дает вам доступ ко всем дополнительным «битам», которые вносят в них такие вещи, как шаблоны.Например, вызов VisualTreeHelper.GetParent
для корневого элемента DataTemplate
, инстанцированного в ListBox
, возвращает ContentPresenter
.
Обратите внимание, что только то, что вы можете получить родительский визуал, не обязательно означаетВы сможете удалить его.Некоторые элементы, такие как панели, предоставляют методы для этого.Но если элемент, который вы находите, является частью, скажем, CheckBox
, я не думаю, что вы сможете удалить его.
Если вы можете предоставить немного больше контекста для того, что выпытаясь достичь этого путем перемещения элементов управления вокруг визуального дерева, люди могут предложить более конкретные советы или альтернативные подходы.