您好我想要两个不同的布局,一个用于移动设备,另一个用于PC,为此我想添加两个同名的MainPage.xaml xaml页面和MainPage.xaml.cs
后面的代码文件。一页添加到DeviceFamily-Mobile
文件夹中,另一页添加到项目的主要区域中。
现在,当我运行应用程序时,它会出现此错误:
“类型'MainPage'已经定义了一个名为'.ctor'的成员,其参数类型相同”
为了解决这个问题,我在桌面主页的构造函数中添加了参数。现在项目运行成功,页面和代码都运行良好,但我只是注意到桌面页面的参数化构造函数没有被调用...
现在我的总结问题是如何为特定设备系列添加两个具有相同名称和不同代码文件的页面。
我搜索了很多,但没有得到我的问题的答案。
如有任何提示,请建议我解决我的问题。
由于
注意:还有一件事,我不希望不同的xaml页面有相同的代码文件。
答案 0 :(得分:1)
i)要创建以不同设备为目标的页面,使用基于MRT的特定语法命名XAML文件。我们在Visual Studio中为此提供了工具支持:
首先,右键单击项目 - >添加新项目 - >新建文件夹,在项目中创建一个新文件夹。此文件夹需要命名以定位特定设备系列 - 在这种情况下,我们将使用“DeviceFamily-Mobile”使用Mobile(包括Phone)。然后使用“XAML视图”模板在Visual Studio中创建定制的XAML视图。选择您添加的文件夹,然后右键单击 - >添加新项目 - > XAML视图。确保将名称编辑为MainPage.xaml(默认情况下,它将命名为MainPage1.xaml)。您需要使用相同的名称,以便将正确加载的页面共享后面的代码。
两个视图共享相同的代码(上例中的MainPage.xaml.cs),并且在一个视图中创建事件处理程序也可以在另一个视图中使用。运行应用程序时,Universal Windows将根据运行该应用程序的设备系列选择正确的视图。
ii)如果您想要特定视图的特殊情况代码,您可以按如下方式测试设备家庭
if(Windows.System.Profile.AnalyticsInfo.VersionInfo.DeviceFamily ==“Windows.Mobile”)
答案 1 :(得分:0)
你做不到。您必须创建2个差异Page
才能有差异代码。
我建议:
答案 2 :(得分:0)
UWP中的页面是部分女巫意味着你可以创建一个新的cs并只写public partial class MainPage{}
并从那里继续课程。然后,您可以使用条件编译。
当我搜索了一下时,我在UWP中找不到任何条件编译,但仅限于Universal(第二个链接)。但第一个链接可能有所帮助。