Я пытаюсь переместить элемент управления из одного родителя в другой (если это будет работать, я не совсем уверен). Я могу удержать контроль, который я хочу переместить. Вот мой код:WPF FrameworkElement Parent и перемещение UIElement
public void MoveElement(UIElement uiElement)
{
var element = ((FrameworkElement)uiElement).Parent;
//TODO:Remove from parent
myControl.Children.Add(uiElement);
}
Когда я попал в последние Постулаты ArgumentException брошена с указанием «Указанной Визуальным уже потомок другого Визуальным или корня CompositionTarget.» Странно, что родитель возвращается null. Как найти родителя? Будет ли это работать?
EDIT: Я не думаю, что на самом деле перемещение элемента является ответом на мою проблему. Я работаю с SDK Visual Studio и смог завладеть UIElement
, который составляет панель редактора (продолжается DockPanel
). Я пытался переместить элемент управления из стандартного редактора в окно настраиваемого инструмента, которое я разрабатываю.
Это оказалось взломом, и я понял, что мне нужно несколько экземпляров одного и того же элемента управления, поэтому я думаю, что более сложное решение (и меньше взлома) находится в запасе.
Обратите внимание на мои изменения для обновленной информации. Я не знал, что VisualTreeHelper существует. Это должно помочь мне идентифицировать родителя. Я не совсем уверен, что перемещение контроля на самом деле является тем, чего мне нужно достичь. –