C#WPF关闭新用户控件

时间:2013-04-23 07:43:02

标签: c# wpf

我是c#的新手。我创建了主窗口,我添加了usercontrols以使用命令在屏幕之间切换:

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?
        }
    }
}

3 个答案:

答案 0 :(得分:1)

您应该尝试使用WPF提供的标准导航服务。这将为您提供可配置的oage缓存和日记功能。

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

答案 1 :(得分:1)

该框架为您提供了很多繁重的导航功能,包括您感兴趣的“后退”操作。

查看http://msdn.microsoft.com/en-us/library/ms750478.aspx

您将使用NavigationService.GoBack。

如果您正在使用Windows应用商店应用,请告诉我,因为我的回答会有所不同。

答案 2 :(得分:1)

试试这个:

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