좋아, 그래서 나는 WPF 메뉴 시스템을 만들고있어 다음과 같이 문제는 :지정된 요소는 이미 다른 요소의 논리적 하위입니다. 빼 처음
나는 다음의 UserControl로 전환 트리거 버튼이있는 MainWindow를 가지고 :
private void Button_Click(object sender, RoutedEventArgs e)
{
NewPage newPage = new NewPage();
pageTransitionControl.ShowPage(newPage);
}
을 이 UserControl (NewPage)에는 현재 UserControl을 전환해야하는 뒤로 단추가 있으므로 MainWindow로 돌아갑니다. 문제는 SetCurrentPage (UserControl을 UC)에있다
private void Back_Click(object sender, RoutedEventArgs e)
{
pageTransitionControl.SetCurrentPage(newPage);
pageTransitionControl.UnloadPage();
}
는 - 그것은 "지정된 요소가 이미 다른 요소의 논리적 자식 먼저 분리합니다.."라고 나에게 이야기한다 -이 문맥에서 의미하는 것이/이것을 고치는 방법을 잘 모르겠습니다. Back_Click
에서
void ShowNextPage()
{
currentPage.Loaded += newPage_Loaded;
contentPresenter.Content = currentPage;
}
public void UnloadPage()
{
Storyboard hidePage = (Resources[string.Format("{0}Out", TransitionType.ToString())] as Storyboard).Clone();
hidePage.Completed += hidePage_Completed;
hidePage.Begin(contentPresenter);
}
void newPage_Loaded(object sender, RoutedEventArgs e)
{
Storyboard showNewPage = Resources[string.Format("{0}In", TransitionType.ToString())] as Storyboard;
showNewPage.Begin(contentPresenter);
}
void hidePage_Completed(object sender, EventArgs e)
{
contentPresenter.Content = null;
}
public void SetCurrentPage(UserControl uc)
{
contentPresenter.Content = uc;
}
방금 NewPage의 Back_Click에서 UnloadPage()를 호출하면 아무 것도 수행하지 않습니다. 뒤로 버튼이 MainWindow에 있으면, 그것을 제거하지만, 내가 원하는 것을하지 않습니다 ... 왜 이것이지 모르겠습니다. – Michael