【发布时间】:2011-02-04 16:09:25
【问题描述】:
我正在尝试将控件从一个父级移动到另一个父级(如果这可行,我不太确定)。我可以抓住我想要移动的控件。这是我的代码:
public void MoveElement(UIElement uiElement)
{
var element = ((FrameworkElement)uiElement).Parent;
//TODO:Remove from parent
myControl.Children.Add(uiElement);
}
当我点击最后一条语句时,会引发 ArgumentException,指出“指定的视觉对象已经是另一个视觉对象的子对象或 CompositionTarget 的根。”奇怪的是 Parent 返回 null。如何找到父级?这还能用吗?
编辑:我不认为实际移动元素是解决我的问题的方法。我正在使用 Visual Studio SDK,并且能够获得构成编辑器窗格的UIElement(扩展DockPanel)。我试图将控件从标准编辑器移动到我正在开发的自定义工具窗口中。
这被证明是一个 hack,我意识到我需要同一个控件的多个实例,所以我认为有一个更复杂的解决方案(并且更少的 hack)。
【问题讨论】:
标签: c# .net wpf uielement frameworkelement