2015-06-14 32 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 

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

相關問題