我正在写C#/ XAML/UWP应用程序,我想知道框架控件的实例(https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.frame)。我不使用缓存,只是标准方案,其中每个导航都会创建请求的特定Page子类的新实例,并处理上一页实例。每个页面实例具有框架构件,和导航到另一个页面通过以下步骤完成:Instancing框架类
this.Frame.Navigate(typeof(RequestedPage));
我可以假设,对于everypage this.Frame是相同的对象为“全局变量” Window.Current.Content?在什么情况下这个假设是不正确的?
我相信你的假设是正确的,它不应该改变,除非你自己手动改变它。 –
Windows.Current.Content甚至不一定是一个Frame。例如,它可以是一个SplitView,SplitView可以保存一个Frame。此外,你甚至可以拥有多个框架,并拥有自己的逻辑和页面。所以,如果你只是使用默认的,开箱即用的设置,它应该是同样的事情。如果不是,你必须小心。 –
看看[Microsoft git samples](https://github.com/Microsoft/Windows-universal-samples)中的Cortana Voice Command示例。它包含一个您感兴趣的NavigationService和[NavigationHelper](https://github.com/Microsoft/Windows-universal-samples/blob/master/Samples/CortanaVoiceCommand/cs/AdventureWorks/Common/NavigationHelper.cs) 。 –