UWP模型澄清

时间:2016-12-03 21:07:31

标签: uwp

在以下Microsoft参考页中:

https://msdn.microsoft.com/en-us/library/windows/apps/mt187344.aspx

..他们为UWP应用识别两种类型的导航模型,单页(推荐)和多页。但是,他们使用的术语很模糊(文档?),并且是矛盾的。有人可以准确地向我解释单页和多页应用之间的区别吗?以下是没有多大意义的摘录:

" UWP应用通常使用单页导航模型。 单页导航模型使用单个页面来维护应用上下文,并根据需要将其他数据和内容加载到中央框架中。您仍然将应用程序拆分为多个文件,但而不是从一个页面移动到另一个页面,您的应用程序会将其他文档加载到主页面框架中。由于您的应用主页永远不会被卸载,因此代码和数据永远不会被卸载,这样可以更轻松地管理状态,并在页面之间提供更流畅的过渡动画。我们建议使用单页导航模型。"

1 个答案:

答案 0 :(得分:2)

我也阅读了那个页面,并且对它们的确切含义感到有些困惑。这是我的想法:

  • 当我说“页面”时,我的意思是Windows.UI.Xaml.Controls.Page

  • 他们将单页模型解释为“使用单个页面”,然后继续说“在页面之间提供更平滑的过渡动画”。咦?我以为只有一个页面,为什么你要在多个页面之间导航?此外,它还提到单页模型主要依赖于Frame类的各种方法,如Navigate,GoBack和GoForward,但如果你只有一个页面,你就不会这样做(甚至使用Frame)

  • 他们还说单页模型是推荐的方法。真?除非应用程序非常简单,只有一个屏幕,否则我不相信大多数应用程序会使用此导航模型。所有项目模板都为您创建了一个框架,以期您编写多页面应用程序。
  • 他们没有解释什么是“文件”。对我来说,文档类似于文本文档(用于文本编辑器或文字处理应用程序)或图像(用于图像编辑器应用程序),但并非所有应用程序都是基于文档的应用程序(例如Facebook应用程序,例如)。

对于大多数应用程序,我会推荐以下导航模型(无论最终被调用):

  • 启动应用程序后,将窗口内容设置为Frame实例。这就是项目模板已经为您完成的工作。
  • 您应用的每个屏幕都可以是单独的页面,并使用框架的导航方法在每个页面之间导航。可以通过Page.Frame属性在页面内访问该框架。

有些应用程序在SplitView控件上有一个汉堡菜单。在这种情况下,SplitView将是Window的内容,而框架将在SplitView内部。

当然,您可以做任何符合您应用需求的喜欢。

除非您有一些非常自定义的导航结构,否则页面中通常没有框架。