한 부모에서 다른 부모로 컨트롤을 이동하려고합니다 (잘 모르겠다면). 나는 움직이고 싶은 컨트롤을 잡을 수 있습니다. 여기 내 코드입니다. "시각 지정 이미 다른 시각 또는 CompositionTarget의 루트의 자식"WPF FrameworkElement 부모 및 UI 요소 이동
public void MoveElement(UIElement uiElement)
{
var element = ((FrameworkElement)uiElement).Parent;
//TODO:Remove from parent
myControl.Children.Add(uiElement);
}
내가 ArgumentException이 진술 발생합니다 마지막 한 Statment 충돌 이상한 점은 Parent가 null을 반환한다는 것입니다. 부모 위치는 어떻게 찾습니까? 이것도 작동합니까?
편집 : 실제로 요소를 이동하는 것이 내 문제의 해답이라고 생각하지 않습니다. Visual Studio SDK를 사용하여 편집기 창 (DockPanel
)을 구성하는 UIElement
을 보유 할 수있었습니다. 컨트롤을 표준 편집기에서 개발중인 사용자 지정 도구 창으로 옮기려고했습니다.
이것은 해킹 인 것으로 입증되었으며 동일한 컨트롤의 인스턴스가 여러 개 필요하다는 것을 알았습니다. 따라서 더 복잡한 솔루션 (그리고 해킹이 적음)이 저장되어 있다고 생각합니다.
업데이트 된 정보를 수정했습니다. 나는 VisualTreeHelper가 존재한다는 것을 몰랐다. 그게 내가 부모를 확인하는 데 도움이 될거야. 컨트롤을 옮기는 것이 실제로 달성해야하는 것은 아닌지 잘 모르겠습니다. –