Хорошо, поэтому я делаю систему меню WPF, и проблема в следующем:
У меня есть MainWindow, в котором есть кнопка, которая запускает переход к следующему элементу управления UserControl:
private void Button_Click(object sender, RoutedEventArgs e)
{
NewPage newPage = new NewPage();
pageTransitionControl.ShowPage(newPage);
}
На этом UserControl (NewPage), у него есть кнопка возврата, которая должна перевести текущий UserControl, поэтому он возвращается к MainWindow.
private void Back_Click(object sender, RoutedEventArgs e)
{
pageTransitionControl.SetCurrentPage(newPage);
pageTransitionControl.UnloadPage();
}
Проблема заключается в SetCurrentPage (UserControl uc) - этоговорит мне, что «указанный элемент уже является логическим потомком другого элемента. Сначала отключите его».- Я не уверен, что это значит в этом контексте / как это исправить?
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;
}