2013-04-23 5 views
0

Я новичок в C#. Я создал основные окна, которые я добавляю UserControls для переключения между экранами с командой:C# WPF закрыть новый пользовательский контроль

Switcher.Switch(new NewPage()); 

Класс Switcher является:

public static class Switcher 
    { 
     public static MainWindow pageSwitcher; 

     public static void Switch(UserControl newPage) 
     { 
      pageSwitcher.Navigate(newPage); 
     } 

     public static void Switch(UserControl newPage, object state) 
     { 
      pageSwitcher.Navigate(newPage, state); 
     } 

    } 

Но как я выйти из пользовательского элемента управления? Я хочу закончить его (например, кнопку «Назад»). Я могу использовать:

Switcher.Switch(new PreviousPage()); 

но он сохранит новую страницу в памяти и не выпустит ее.

Пример класса NEWPAGE:

namespace MyProject.Screens 
{ 

    public partial class NewPage : UserControl 
    { 
     public NewPage() 
     { 
      InitializeComponent(); 
     } 

     private void back_button_Click_(object sender, RoutedEventArgs e) 
     { 
      //what to put here? 
     } 
    } 
} 

ответ

1

Рамки делает много тяжелой работы для навигации для вас, в том числе операции «назад», что вас интересует.

Посмотрите на http://msdn.microsoft.com/en-us/library/ms750478.aspx

NavigationService .GoBack - это то, что вы будете использовать.

Внеслуга, что вы работаете в приложении Windows Store, сообщите мне, так как мой ответ будет другим.

1

Вы действительно должны попробовать и использовать стандартные навигационные службы, доступные с WPF. Это даст вам настраиваемое кэширование и журналирование.

http://msdn.microsoft.com/en-GB/library/ms750478(v=vs.100).aspx

1

Попробуйте это:

private void back_button_Click_(object sender, RoutedEventArgs e) 
    { 
     Window parentWindow = (Window)this.Parent; 
     parentWindow.Close(); 
    } 
+1

Это работало для меня веселит –

Смежные вопросы