背景

微软推出UAP 推荐使用响应式的UI,但是难免遇到一些特殊情况需要使用不同的Page来在不同的设备显示。

微软目前最新的VS2015在10074上安装后能够支持这个功能特性,只是暂时没有文档介绍。

我拿到了Demo后整理了一下建立工程的使用这个特性方法:

使用方法

1 首先建立一个UAP工程。

2 在工程中添加自己的Page 比如 这里在子文件夹Modules/Home 下面建立了一个主页Index.xaml,Tilte为"Universal Page"

3 添加DeviceFamily-DesktopDeviceFamily-Mobile 2个子目录,这2个目录的名字必须固定

4 将Index.xaml拷贝到DeviceFamily-DesktopDeviceFamily-Mobile,删除这2个目录下的Index.xmal.cs 文件。

5 修改Desktop下的Tilte 改成 "Desktop Page"

显示效果如下:

总结

  1. 使用方法为 在Page.xaml的同级目录添加DeviceFamily-DesktopDeviceFamily-Mobile 2个子目录。
  2. 复制Page.xaml到这2个目录,使Page.xaml.cs 都对于了3个Page.xaml, 系统运行时会通过deviceFamily自动选择对于的Page.xmal,在没有对应的deviceFamily时候会选择原来的Page.xaml.
  3. 因为多个Page.xaml 的存在,需要让出现Control的Name 保持一致,这样codebehine使用的时候才能正常工作,如果不一致会出现codebehine使用Name的时候出现null的情况,需要做检查。

4. 对所有Xmal文件都有效,对其他文件包括cs文件都无效

编译情况

3种xmal会编译成 3种UI和一个codebehind的对象,根据平台来进行使用。

UAP如何根据DeviceFamily显示不同的页面的更多相关文章

  1. Oracle Sales Cloud:管理沙盒(定制化)小细节1——利用公式创建字段并显示在前端页面

    Oracle Sales Cloud(Oracle 销售云)是一套基于Oracle云端的CRM管理系统.由于 Oracle 销售云是基于 Oracle 云环境的,它与传统的管理系统相比,显著特点之一便 ...

  2. ASP.NET Core中显示自定义错误页面-增强版

    之前的博文 ASP.NET Core中显示自定义错误页面 中的方法是在项目中硬编码实现的,当有多个项目时,就会造成不同项目之间的重复代码,不可取. 在这篇博文中改用middleware实现,并且放在独 ...

  3. ASP.NET Core中显示自定义错误页面

    在 ASP.NET Core 中,默认情况下当发生500或404错误时,只返回http状态码,不返回任何内容,页面一片空白. 如果在 Startup.cs 的 Configure() 中加上 app. ...

  4. 点击a标签,跳转到iframe中,并在iframe中显示指定的页面

    点击a标签,跳转到iframe中,并在iframe中显示指定的页面 1.用a标签的target属性 <iframe id="myFrameId" name="myF ...

  5. iPhone 上显示桌面版页面

    在用智能电话的浏览器打开页面时,很多网站会根据浏览器的屏幕大小自动调整显示布局,或跳转到移动设备使用的专用面上来优化显示.一些情况下,这种优化可能不是用户希望的,比如优化后的页面缺少桌面版的功能. 这 ...

  6. MVC下 把数据库中的byte[]值保存成图片,并显示在view页面

    MVC下 把数据库中的byte[]值转成图片,并显示在view页面 controller中的action方法 //显示图片[AllowAnonymous]public ActionResult Sho ...

  7. Session过期,跳出iframe框架页显示会话过期页面

    web开发中经常会有这种情况,在一个主页面中包含侧边导航菜单和iframe,点击菜单项,对应页面会在iframe中显示,整个页面不会刷新.但是如果设置了会话Session,在会话过期后再操作会自动re ...

  8. 设置一个div网页滚动时,使其固定在头部,当页面滚动到距离头部300px时,隐藏该div,另一个div在底部,此时显示;当页面滚动到起始位置时,头部div出现,底部div隐藏

    设置一个div网页滚动时,使其固定在头部,当页面滚动到距离头部300px时,隐藏该div,另一个div在底部,此时显示: 当页面滚动到起始位置时,头部div出现,底部div隐藏 前端代码: <! ...

  9. 【转】ViewPager 一屏显示多个子页面

    一.概述 项目中遇到一个需求:ViewPager 一屏显示多个子页面.因为之前没有做过这样的界面,所以经历了些许小插曲,特以记之! 主要内容来自: http://blog.csdn.net/JM_be ...

随机推荐

  1. 关于在asp.net的web页面中的全局变量问题

    在asp.net的web页面中是不是没有全局变量?有的,在Class类内部的都是,只不过在WebWofm程式中跟WinForm和Console程式有些区别,当页面刷新时,它们的值不会保持,依然会再次初 ...

  2. Android语音识别(本地+第三方)

    语音识别主要的功能就是在用户不方便输入的时候找一个替代输入的选择. 1.本地语音识别 下面的代码首先创建SpeechRecognizer对象,并设置回调函数监听器.当在点击监听器中调用doSpeech ...

  3. c#接口相关

    public interface I接口名 { void SaiHi(); void Hello(string msg); //以上是方法 string Name { get; set; } //以上 ...

  4. sql 选取每个分组中的第一条数据

    --1.创建测试表Create Table #Order1( OrderName varchar(50), RequestDate datetime, OrderCount int)-- 插入测试数据 ...

  5. 北大ACM(POJ1009-Edge Detection)

    Question:http://poj.org/problem?id=1009问题点:RLE编码. Memory: 648K Time: 547MS Language: C++ Result: Acc ...

  6. 在window 下安装Memcache详解

    有时候我们需要在本地测试的时候就用到memcahce,如果本地没有安装memcache,就会有下面的错误提示: 1234567 系统发生错误 您可以选择 [ 重试 ] [ 返回 ] 或者 [ 回到首页 ...

  7. 网站的配置文件XML读写

    网站的配置信息一般都写入到XML中,以下是简单的对xml的读写操作,仅供参考. 读操作: XmlDocument xmlDoc = new XmlDocument(); XmlReaderSettin ...

  8. OC4_遵守多个协议

    // // Calulator.h // OC4_遵守多个协议 // // Created by zhangxueming on 15/6/24. // Copyright (c) 2015年 zha ...

  9. ApplicationContext的应用场景

    1.上一节中我们了解了IoC容器建立的基本步骤.理解这些步骤之后,可以很方便地通过编程的方式来手工控制这些配置和容器的建立过程了. 2.但是,在Spring中,系统已经为用户提供了许多已经定义好的容器 ...

  10. Qt 5 在Windows下 出现QApplication: No such file or directory 问题的解决办法

    解决方法是:在*.pro工程项目文件中添加一行QT += widgets,然后再编译运行就OK了.