0

我是 C# 的新手。我已经创建了主窗口,我正在添加用户控件以使用命令在屏幕之间切换:

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

3 回答 3

1

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

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

于 2013-04-23T07:48:28.587 回答
1

该框架为您完成了很多繁重的导航工作,包括您感兴趣的“返回”操作。

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

NavigationService.GoBack 是您将使用的。

如果您正在开发 Windows 应用商店应用程序,请告诉我,因为我的答案会有所不同。

于 2013-04-23T07:51:02.120 回答
1

试试这个:

    private void back_button_Click_(object sender, RoutedEventArgs e)
    {
       Window parentWindow = (Window)this.Parent;
       parentWindow.Close();
    }
于 2013-11-13T22:24:16.740 回答