快速构建Windows 8风格应用4-FlipView数据控件
原文:快速构建Windows 8风格应用4-FlipView数据控件
本篇博文主要介绍为什么使用FlipView控件、什么是FlipView控件、如何使用FlipView控件和FlipView控件最佳实践。
为什么使用FlipView控件?
如果我们开发一个购物类应用,希望在产品详细页面中显示产品的多个图像,对于这种小型数据集合可以使用FlipView控件。
如果我们开发一个房地产类应用,希望针对每间房屋显示许多图像,以展示各个房间,对于这种中型数据集合可以包括FlipView控件,以便让用户可以跳转到特定的照片。
什么是FlipView控件?
FlipView数据控件用来显示数据集合,用户可以通过滑动在其子窗体间切换,当然也可以点击左右或者上下两侧的切换按钮在其子窗体间切换。FlipView控件继承自ItemsControl类。

下面我们来看FlipView控件中几个重要属性和事件:
1) ItemsSource属性:获取或设置生成其内容的对象源;
2) ItemTemplate属性:获取或设置显示项的模版;
3) ItemTemplateSelector属性:选择生效的模版(一般在定义了多个ItemTemplate时使用);
4) ItemsPanel属性:获取或设置放置内容的面板(通常用来改变FlipView控件的切换方向);
5) SelectionChanged事件:当选择的项改变时触发;
如何使用FlipView控件?
对于我们开发者如何在应用程序中使用FlipView控件呈现数据呢?
让我们看一下三种常用的FlipView呈现数据效果和如何在代码中如何实现这些效果:
1) 默认方式,左右浏览数据。

XAML中声明FlipView控件,设置DataTemplate,其中Image控件用于显示图片、TextBlock控件用于显示图片的标题。具体代码如下:

C#代码中将数据绑定到FlipView控件的ItemSource属性上。具体代码如下:

2) 上下浏览数据

XAML中在声明的FlipView控件中设置ItemsPanel属性,值为vertical。具体如何设置如下图代码中所示:

C#代码中将数据绑定到FlipView控件的ItemSource属性上。具体代码如下:

3) 添加上下文指示器控件,以便用户可以直接跳转到特定的项目

XAML中首先需要声明一个FlipView控件,关于FlipView中属性并没有特别的设置,基本和上面代码相同。具体代码如下:

此处唯一特殊之处是还需要声明一个ListBox控件,用来呈现指示器的效果。

声明的ListBox控件如下,需要注意的是SelctedItem进行了一个双向绑定,是将FlipView3的SelectedItem属性值绑定到ListBox的SelctedItem属性上,其中ListBox控件的ItemContainerStyle属性引用了一个名字为ContextControlItemStyle静态资源,Style属性引用了一个名字为ListBoxStyle1静态资源。

静态资源定义在<Page.Rescource>中,具体代码如下:

C#代码中将数据绑定到FlipView控件的ItemsSource属性上和ListBox的ItemsSource属性上。具体代码如下:

FlipView控件最佳实践
建议:
1) 当集合中的项不能提供足够的上下文信息让用户知道他们当前在哪个集合中时,使用上下文指示器提示用户。
2) 给用户指示,提醒他们在集合中的当前项。
3) 裁剪有提示项的数量和特定的场景。
4) 允许用户跳转到指定的项。
避免:
1)不要使用FlipView呈现大型的集合,可使用ListView和GridView控件来呈现。
快速构建Windows 8风格应用4-FlipView数据控件的更多相关文章
- 快速构建Windows 8风格应用17-布局控件
原文:快速构建Windows 8风格应用17-布局控件 本篇博文主要介绍三种常用的布局控件:Canvas.Grid.StackPanel. Panel类是开发Windows 8 Store应用中一个重 ...
- 快速构建Windows 8风格应用15-ShareContract构建
原文:快速构建Windows 8风格应用15-ShareContract构建 本篇博文主要介绍共享数据包.如何构建共享源.如何构建共享目标.DataTransferManager类. 共享数据包 Da ...
- 快速构建Windows 8风格应用14-ShareContract概述及原理
原文:快速构建Windows 8风格应用14-ShareContract概述及原理 本篇博文主要介绍Share Contract概述.Share Contract实现原理.实现Share Contra ...
- 快速构建Windows 8风格应用13-SearchContract构建
原文:快速构建Windows 8风格应用13-SearchContract构建 本篇博文主要介绍如何在应用中构建SearchContract,相应的原理已经在博文<快速构建Windows 8风格 ...
- 快速构建Windows 8风格应用9-竖直视图
原文:快速构建Windows 8风格应用9-竖直视图 本篇博文主要介绍竖直视图概览.关于竖直视图设计.如何构建竖直视图 竖直视图概览 Windows 8为了支持旋转的设备提供了竖屏视图,我们开发的应用 ...
- 快速构建Windows 8风格应用10-设备方向
原文:快速构建Windows 8风格应用10-设备方向 本篇博文主要介绍常用支持Windows 8操作系统设备的方向.如何获取当前设备方向.DisplayProperties类. 常用支持Window ...
- 快速构建Windows 8风格应用11-语义缩放
原文:快速构建Windows 8风格应用11-语义缩放 本篇博文主要介绍为什么需要语义缩放.什么是语义缩放.如何构建语义缩放. 为什么需要语义缩放 如果用过Windows 8系统的开发者都知道在Win ...
- 快速构建Windows 8风格应用12-SearchContract概述及原理
原文:快速构建Windows 8风格应用12-SearchContract概述及原理 本篇博文主要介绍Search Contract概述.Search Contract面板结构剖析.Search Co ...
- 快速构建Windows 8风格应用7-页面视图概览
原文:快速构建Windows 8风格应用7-页面视图概览 本篇博文主要介绍Windows 8风格应用中包含哪些视图.Visual Studio 2012和模拟器中如何开发和调试不同的页面视图.页面视图 ...
随机推荐
- 关闭 MsMpEng.exe
MsMpEng.exe是Windows Defender 自动保护服务的核心引擎. 系统是win8.1 最近发现MsMpEng.exe是任务管理器里面最占内存的一个程序,且无法强制结束程序.偶然发现一 ...
- 【本·伍德Lua专栏】补充的基础09:使用table.concat将一个大的字符串
近期2天都没有写新的文章了.主要是近期的内容没有特别有意思的. 之前的协同程序也临时没有感觉到特别适用的地方.今天在看数据结构的部分,也是没多大意思(不代表没用). 但是突然发现了一个有意思的地方,那 ...
- 对于C11中的正則表達式的使用
Regular Expression Special Characters "."---Any single character(a "wildcard") & ...
- Android:抄QQ照片选择器(按相册类别显示,加入选择题)
这个例子的目的是为了实现类似至QQ照片选择功能.选择照片后,,使用类似新浪微博 微博 页面上显示. 先上效果图: 本例中使用的主要技术: 1.使用ContentProvider读取SD卡全部图 ...
- QTbutton设置背景颜色和文字显示位置设置
QPushButton * pQBtn = new QPushButton( cBuff, this ); pQBtn->setStyleSheet("text-align: left ...
- [SignalR]在非Hub继承类中使用脚本方法
原文:[SignalR]在非Hub继承类中使用脚本方法 新建一个普通类OutHub,里面包含一个脚本方法OutHubTest. 因为大家知道,若能让脚本调用到的话,必须继承Hub,那怎么实现了?通过G ...
- [SignalR]异常信息捕获以及处理
原文:[SignalR]异常信息捕获以及处理 异常处理,一般采用try..catch方式处理,而signalR里面有HubPipelineModule类可以捕获到Hub内发生的异常信息. 从上图中,可 ...
- UVA1232 - SKYLINE(段树部分的变化)
UVA1232 - SKYLINE(线段树区间改动) 题目链接 题目大意:依照顺序盖楼.假设这个位置(当前要盖的楼覆盖范围内)要新建的楼的高度>=之前就有的最大高度,那么就+1.最后输出这个+1 ...
- 编写可维护的Javascript读书笔记
写在前面:之前硬着头皮参加了java方面的编程规范培训,收货良多,工作半年有余的时候,总算感觉到一丝丝Coding之美,以及造轮子的乐趣,以至于后面开发新功能的时候,在Coding style方面花了 ...
- asp.net下cookie 的基础使用
cookie作为在B/S开发中经常被使用到的东西,asp.net必然提供了现成的东西给我们使用. 就是这个对象:HttpCookie,当然了,对于asp.net来说,Request和Response中 ...