更改通用应用程序中默认页面的位置

Change the Location of DefaultPage in Universal App

如何更改 Universal Windows App 中默认 MainPage.xaml 的位置?我想在 Windows 和 WindowsPhone 项目中有一个名为 "View" 的子文件夹,我在其中保存 MainPage.xaml 文件,就像这个例子一样。

- Windows 项目
-- 查看
--- MainPage.xaml

- WindowsPhone 项目
-- 查看
--- MainPagePhone.xaml

- 共享文件
-- 型号
-- 视图模型
-- App.xaml

使用该结构,我在 App.xaml.cs 中遇到问题,无法找到 MainPage

if (!rootFrame.Navigate(typeof(MainPage), e.Arguments))
{
    throw new Exception("Failed to create initial page");
}

首先,您不需要为文件指定不同的名称,phone 和 pc 项目都使用 MainPage,并将 MainPage.xaml 放在 view 文件夹中。 Universal App 会知道它在哪些平台上运行,并会相应地加载正确的页面。 您需要在两个项目中创建视图文件夹和 MainPage.xaml 文件。 删除 View 文件夹外的所有 MainPage.xaml 个文件。

然后导航至您的 App.xaml.cs 共享文件。

查看onLaunched方法,你应该在方法的末尾找到类似这样的内容:

if (!rootFrame.Navigate(typeof(MainPage), e.Arguments))
{
    throw new Exception("Failed to create initial page");
}

这是您的项目尝试加载页面的地方。 MainPage 应标记为错误,因为我们缺少引用。

因此,将此添加到 App.xaml.cs 页面的顶部:

using NameOfYourProjectHere.View;

如果有效请告诉我!

如果你想有不同的名字(mainWinPage / mainPhonePage)你必须告诉他取哪一个,每次你在 Shared-Project 中使用它时:

#include yournamespace.Views;
..

#if WINDOWS_APP
if (!rootFrame.Navigate(typeof(MainWinPage), e.Arguments))
...
#else // or #if WINDOWS_PHONE_APP
if (!rootFrame.Navigate(typeof(MainPhonePage), e.Arguments))
...
#endif

或者只使用相同的名称,这样更容易。