单页面模板

通常利用Visual Studio 2013创建的最简单的WP8.1应用是Blank App,它只包含一个不带任何UI的页面,并且没有任何状态管理的逻辑。

该不带任何UI的页面称为Blank Page,如下图所示。

另外还可以通过菜单“Add New Item…”,新增Basic Page,如下图所示。

它与Blank Page主要区别为:

1,Basic Page包含基本的页面布局;

2,页面中预先配置了状态管理代码;

3,附带一个帮助类用于状态管理和一个NavigationHelper类用于处理后退跳转;

 

页面方向

在Windows Phone Silverlight 应用中,可以通过设置<Page…>的SupportedOrientations属性定义某个页面支持的方向。

而在Windows Phone Store 应用中就很不一样了。可以在manifest编辑器中的Application选项卡选择合适的选项,为整个应用设置方向。

如果不想设置整个应用范围的方向,而只设置某些页面,可以利用代码Windows.Graphics.Display.DisplayInformation.AutoRotationPreferences 设置,示例代码如下:

但是上述代码仍然是设置整个应用范围的,所以别忘了在离开页面时恢复状态,可参考OnNavigationFrom函数中的代码。

 

Hub控件

基于WinRT的Windows Phone中Hub控件和Windows上相同,并且与Windows Phone Silverlight中Panorama控件类似。

通常Hub页面是应用的首页。

Hub控件设计上的精髓是把内容分离到不同的段落和不同的细节级别上。Hub页面是用户的切入点。内容以横向或纵向显示(根据设备的方向),让用户可以一眼预览新的内容。

Hub包含不同分类的内容,每个分类映射到应用的某个页面。每个段落都应该显示内容或功能。

Hub应该提供大量的视觉变化,吸引用户查看应用的各个模块。

另外控件和模板让Hub的布局和导航变得非常简单。

Windows Phone 和 Windows Hub控件以及相关的应用模板已经把主页面的构建形式化了,因此非常容易构建一个主页面。

下面这张图是利用“中心应用程序”模板创建的Hub页面默认样式。

从上图中发现,每个段落呈现的样式都不一样,也就是说Hub控件中不同的段落可以定制不同样式模板。

另外每个段落的布局都是在DataTemplate中定义的,示例代码如下:

从上述代码中,发现通常Hub控件作为Grid的唯一内容,囊括了页面的内容。在Hub中的HubSection控件,分别显示控件的不同段落。

一般我们都会为应用的主页面设置背景图,若主页面中包含的是Hub控件,通常设置的是Hub控件的背景图片,而不是Page的背景图片。当用户滚动到Hub的内容时,将会看到完整的平行视差效果。

设置Hub的背景图片可参考如下代码:

 

参考资料

1,快速入门:使用中心

2,Hub Class

3,Windows Phone 8.1 samples

构建基于WinRT的WP8.1 App 03:Page控件的更多相关文章

  1. 构建基于WinRT的WP8.1 App 01:页面导航及页面缓存模式

    本篇博文主要阐述基于Windows Runtime的Windows Phone 应用页面间导航相关知识,主要分为以下几个方面: Window.Frame和Page概览 页面间实现跳转 处理物理后退键 ...

  2. 构建基于WinRT的WP8.1 App 02:数据绑定新特性

    基于WinRT的Windows Phone 8.1以及Windows 8.1中Xaml数据绑定增加了一些新特性. FallBackValue属性:FallBackValue在绑定的值属性值不存在时,可 ...

  3. 基于Jquery WeUI的微信开发H5页面控件的经验总结(2)

    在微信开发H5页面的时候,往往借助于WeUI或者Jquery WeUI等基础上进行界面效果的开发,由于本人喜欢在Asp.net的Web界面上使用JQuery,因此比较倾向于使用 jQuery WeUI ...

  4. C#开发APP,ToolBar控件在Smobiler中的使用方式【附案例源码】——Smobiler移动开发平台

    控件说明 底部工具栏控件. 效果演示 其他效果 该界面为仿淘宝UI制作的一个简单的UI模板,源码获取方式请拉至文章末尾. 特色属性 属性 属性说明 Direction(相对布局) 容器主轴方向. Fl ...

  5. [深入浅出WP8.1(Runtime)]浮出控件(Flyout)

    4.15 浮出控件(Flyout) 浮出控件(Flyout)是一个轻型的辅助型的弹出控件,通常会作为提示或者要求用户进行相关的交互来使用.Flyout控件与Windows Phone里面的弹出框Mes ...

  6. 3.WP8.1开发_为控件增加动画

    示例: 把一个按钮的宽度从100变到500 根据WPF的经验,会把代码写成如下: <Grid> <Button x:Name="btn" Content=&quo ...

  7. iOS开发之资讯类App常用分类控件的封装与实现(CollectionView+Swift3.0+)

    今天博客中,我们就来实现一下一些常用资讯类App中常用的分类选择的控件的封装.本篇博客中没有使用到什么新的技术点,如果非得说用到了什么新的技术点的话,那么勉强的说,用到了一些iOS9以后UIColle ...

  8. 基于zepto的移动端日期和时间选择控件

    前段时间给大家分享过一个基于jQuery Mobile的移动端日期时间拾取器,大家反应其由于加载过大的插件导致影响调用速度.那么今天我把从网络上搜集到的两个适合移动端应用的日期和时间选择插件分享给大家 ...

  9. Windows 8.1中WinRT的变化(一)——新增控件

    这次WinRT的变化还是不小的,就拿新增控件来说,就有如下几种: AppBar 控件 我以前写过一篇文章接受过如何在WinRT程序中快速创建Metro风格图标,现在MS已经把他们标准化了,就不用我们自 ...

随机推荐

  1. Web程序的桌面提醒

    做web开发常会面对的一个问题是,浏览器最小化的时候如何才能向用户发送通知.解决办法大概有三种:让用户有事没事儿搂两眼页面:开发一个桌面客户端:Html5的Notification API. 目前没看 ...

  2. [MSSQL]SQL疑难杂症实战记录-巧妙利用PARTITION分组排名递增特性解决合并连续相同数据行

    问题提出 先造一些测试数据以说明题目: DECLARE @TestData TABLE(ID INT,Col1 VARCHAR(20),Col2 VARCHAR(20)) INSERT INTO @T ...

  3. VS2012 生成事件

    在一个解决方案中有多个项目的时候,我们常需要拷贝一些文件,dll到指定的目录下,或者遇到com组件还需要提前注册dll,这个就需要用到VS的生成事件. 一.位置: 项目-->右键-->属性 ...

  4. mac下载百度云盘大文件及断点续传的方法

    问题 作为资源共享平台, 百度云做的还是很出色的, "xxx site:pan.baidu.com"就可以找到很丰富的资源. 然而, 下载百度云上的文件就略蛋疼了. 早在12年的时 ...

  5. Java基础的一次总结

    二重循环核心:就是我们学习的内容中,一直在不停的打印图形,当我们写完所有打印图形的题目后,我们站在一个 新的高度上来看二重循环解决图形问题的时候.我们知道核心思想就是:就是寻找外层循环变量i和内层循环 ...

  6. atitit.架构设计---方法调用结果使用异常还是返回值

    atitit.架构设计---方法调用结果使用异常还是返回值 1. 应该返回BOOL类型还是异常 1 2. 最终会有四种状况,抛出异常.返回特殊值.阻塞.超时 1 3. 异常的优缺点点 1 4. jav ...

  7. js程序设计02——变量、作用域问题

    首先,ECMAScript中的数据类型分为基本类型.引用类型,基本类型的访问操作是按值的.引用类型的值是保存在内存中的对象,操作对象时,实际上操作的是对象的引用,而非对象自身.“javascript高 ...

  8. iOS-多线程-内存管理

    iOS与OSX 多线程和内存管理  总结 一.              自动引用计数 1.自动引用计数(ARC)就是指内存管理中对引用采用自动计数的技术. 满足以下条件即可使用这种功能: Xcode ...

  9. android eclipse关联源码,以及源码(代码)以及jar查看软件

    1.eclipse关联源码 步骤一:自已百度下载相应版本的源码,我这里是4.2也就是API=17的版本. 步骤二:找到你安装sdk的目录, G:\Program Files\adt-bundle-wi ...

  10. Leetcode 119 Pascal's Triangle II 数论递推

    杨辉三角,这次要输出第rowIndex行 用滚动数组t进行递推 t[(i+1)%2][j] = t[i%2][j] + t[i%2][j - 1]; class Solution { public: ...