2015-06-14 53 views
0

如何在Universal Windows App中更改默认MainPage.xaml的位置?我想在Windows和WindowsPhone项目中有一个名为“View”的子文件夹,在这里我保存MainPage.xaml文件,就像这个例子。在通用应用程序中更改DefaultPage的位置

  - 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"); 
} 

回答

2

首先,你不需要给您的文件给予不同的名称,对于手机和PC项目中使用和的MainPage把MainPage.xaml中的视图文件夹内。 通用应用程序将知道它运行在哪个平台上,并且会相应地加载正确的页面。 您需要在两个项目中创建视图文件夹和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; 

让我知道,如果它的工作原理!

+0

我试过了,但我无法在App.xaml.cs中添加名称空间。它给出了错误:命名空间“视图”不可用 – user2025830

+0

我也试过,它让我只有在Windows Phone和Windows项目中都存在View时才导入命名空间。发布你的项目结构的一些屏幕 –

+0

我做了一个新的项目,现在它的工作。谢谢 – user2025830

0

如果你想有不同的名称(mainWinPage/mainPhonePage),你要告诉他该走的一个,每次你在共享项目中使用它:

#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 

或者只是使用相同的名称,品牌它更容易。

相关问题