2016-04-06 18 views
2

您好我想有兩個不同的佈局,一個用於移動其他電腦和爲此我想添加兩個相同名稱的xaml頁面MainPage.xaml和代碼文件MainPage.xaml.cs。在項目的主要區域添加了DeviceFamily-Mobile文件夾和其他頁面。如何添加兩個xaml頁面相同的名稱和單獨的代碼文件後面在uwp

現在,當我運行的應用程序它給這個錯誤:

「類型‘的MainPage’已經定義了一個名爲‘.ctor’具有相同的參數類型成員」

爲了克服這個問題,我在桌面的主頁面的構造函數中添加參數。現在,項目成功運行和頁面和代碼工作不錯,但我只注意到桌面頁的參數的構造函數沒有被調用......

現在我總結的問題是我如何能增加兩個頁面具有相同名稱和不同的代碼文件在特定設備系列的後面。

我搜索了很多,但沒有得到我的問題的答案。
請給我任何解決方案我的問題任何提示。

感謝

注:還有一兩件事,我不想同一個代碼文件不同的XAML頁面。

回答

0

你不行。您必須創建2個差異Page以使差異代碼位於後面。

我建議:

  • 重構代碼後面的使用依賴注入和接口,所以它適應器件系列
+0

是的,我有兩個頁面單獨創建,但它給「.ctor」錯誤。無法理解如何解決此構造函數錯誤。你想說的依賴注入,請給我一點細節。謝謝 – Shani74

0

在UWP頁面是部分巫婆意味着你可以創建一個新的CS和只需寫public partial class MainPage{}並從那裏繼續課程。然後你可以使用條件編譯。

當我搜索了一下,我找不到在UWP中的任何條件編譯,但僅用於通用(第二鏈接)。但第一個鏈接可能會有所幫助。

Three ways to set specific DeviceFamily XAML Views in UWP

Conditional Compilation in Universal Apps

+0

我已經看到第一個鏈接,但他們只創建只有一個MainPage.xaml.cs文件的xaml頁面。我想爲每個設備系列分開兩個文件,就像我在我的問題中提到的那樣。 – Shani74

+0

不可能。您可以部分創建MainPage的兩個文件,然後在每個文件中編寫特定於設備的代碼。 – Stamos

1

我)要創建哪些目標不同的設備XAML文件是使用基於MRT特定的語法命名一個頁面。我們在Visual Studio中爲此提供了工具支持:

首先,右鍵單擊項目 - >添加新項目 - >新建文件夾,在項目中創建一個新文件夾。該文件夾需要命名以針對特定的設備系列 - 在這種情況下,我們將使用「DeviceFamily-Mobile」使用Mobile(其中包括Phone)。然後使用'XAML視圖'模板在Visual Studio中創建定製的XAML視圖。選擇您添加的文件夾,然後右鍵單擊 - >添加新項目 - > XAML視圖。確保將名稱編輯爲MainPage.xaml(默認情況下它將被命名爲MainPage1.xaml)。您需要使用相同的名稱,以便後面的代碼將被正確加載的頁面共享。

兩個視圖共享相同的代碼(MainPage.xaml。上例中的cs),並且在其中創建一個事件處理程序也可以在另一個視圖中使用。當應用程序運行時,通用Windows將根據運行應用程序的設備系列選擇正確的視圖。

二)如果你想爲你可以測試devicefamily如下

特定視圖特殊情況的代碼,如果(Windows.System.Profile.AnalyticsInfo.VersionInfo.DeviceFamily ==「Windows.Mobile」)

+0

完美答案,但你沒有看到我的問題請注意......「還有一件事,我不希望不同的xaml頁面具有相同的代碼文件。」如果我想要2個單獨的xaml和一個共享的cs文件,您都可以正確地告訴我。但是我想用單獨的cs頁面文件分開兩個xaml。 uwp有可能嗎? – Shani74

相關問題