WP8.1学习系列(第九章)——透视Pivot开发指南

Windows Phone 8 的 Pivot 控件

 

2014/6/18

 

适用于:Windows Phone 8 和 Windows Phone Silverlight 8.1 | Windows Phone OS 7.1

Windows Phone Pivot 应用提供了一种快速管理视图或页面的方法。该方法可以用于筛选大型数据集、查看多个数据集或切换应用视图。例如,在页面上从左至右轻拂或平移,可以前进到内容的下一个页面。

 

本主题包括以下部分。

  • Pivot 控件概述
  • 导航支持
  • Pivot 应用功能
  • 相关主题
Pivot 控件概述

在应用的底部是 Pivot 控件,该控件本质上是次要控件(称为 PivotItem 控件)的容器。PivotItem 控件包含单个页面的内容,如每个页面中的控件、网格或链接。有关 Pivot 控件体系结构的更多信息,请参见 Windows Phone 8 的 Pivot 控件体系结构。

 

AP_Design_pivot_control

 

导航支持

Pivot 控件内置了对触控式交互和导航的支持。因为默认情况下已经启用了手势功能,所以您不必在应用中实施任何特殊的手势功能。Pivot 控件支持以下手势和导航效果:

  • 水平移动(点击并向左/向右拖动)

  • 水平轻拂(点击并向左/向右快速滑动)

  • 导航托管的控件 - 例如,可以点击链接,可以滚动列表

AP_CoreCon_PivotSample
Pivot 应用功能

下表列出了在 Pivot 应用中所支持的一系列功能。

功能

描述

设计时体验

您可以使用 Visual Studio 或 Blend for Visual Studio 中的设计图面执行诸如添加其他 PivotItem 控件和在项视图之间切换之类的操作。

匹配 Windows Phone Pivot 体验

您应用的外观和响应体验可能与集成的 Windows Phone Pivot 体验相似。

内置的轻拂和手势支持

Pivot 应用已提供对常见导航的手势支持。您不必在您的应用中实现诸如拖动、轻拂或点击之类的手势。

对已更改选择的响应

只要 PivotItem 发生更改,您就可以在代码中订阅 SelectionChanged 事件来对该更改做出响应。

按需加载内容

若要提高 Pivot 应用的性能,您可以按需加载 Pivot 控件内容,而不是在启动时就加载所有内容。

采用编程方式选择哪个PivotItem 位于视图中

您可以采用编程方式为用

Windows Phone 8 的 Pivot 控件体系结构

 

2014/6/18

 

适用于:Windows Phone 8 和 Windows Phone Silverlight 8.1 | Windows Phone OS 7.1

Pivot 应用包含一个基础 Pivot 控件,该控件托管内容的各个页面。PivotItem 控件负责显示页面中的内容。您可以使用设计器或采用编程的方式来处理这些元素。本主题详细介绍 Pivot 控件和 PivotItem 控件的体系结构以及具体分析。

AP_CoreCon_PivotAnatomy

 

本主题包括以下部分。

  • Pivot 控件
  • PivotItem 控件
  • 相关主题
Pivot 控件

Pivot 控件是用于 Pivot 应用的基础控件,该控件包含两个不同的层。每个层都包含在用作 Pivot 控件的布局根的 Grid 控件中。

类型

描述

标题列表元素

PivotHeadersControl

该元素负责显示 Pivot 项的标题。

Pivot 项展示区

ItemsPresenter

该 ItemsPresenter 控件显示集合中的一个 PivotItem 控件。

标题列表元素

显示标题,直到超过突出显示当前标题的控件的宽度。 如果没有足够的标题来占满该控件的全部宽度,则标题不会循环并且每个标题只显示一次。

Pivot 项展示区

这是一个标准的 ItemsPresenter 控件,它负责充当项内容的占位符。它将包含 PivotItem 控件。

PivotItem 控件

PivotItem 控件显示单个查看页面中的内容。PivotItem 控件是在 XAML 中作为标准 ItemsControl 元素定义的。PivotItem 控件包含一个层,该层包含在用作 Pivot 控件的布局根的 Grid 控件中。

类型

描述

内容

ContentPresenter

该 ContentPresenter 控件显示 PivotItem 内容。

内容

这是一个标准的 ContentPresenter 元素,用于充当内容的占位符。

在 Pivot 控件中只能定义 PivotItem 控件。如果您尝试将另一个元素放到 Pivot 控件中,该元素将被包装到PivotItem 控件中。可以在 XAML 代码中指定 PivotItem 控件的内容,也可以采用编程方式通过 Content 属性添加该控件的内容。

如何为 Windows Phone 8 创建 Pivot 应用

 

2014/6/18

 

适用于:Windows Phone 8 和 Windows Phone Silverlight 8.1 | Windows Phone OS 7.1

 

在 Visual Studio 中,有多种在 Windows Phone 中创建 Pivot 体验的方法:

  • 创建新项目时,可以使用名为“Windows Phone Pivot 应用”的自定义模板。该模板将预填充内容,您可以相应地修改该模板。

  • 在 Visual Studio 中,可以向工具箱添加 Pivot 控件并且可以轻松放置到您的项目中。

  • 您可以向现有项目添加“Windows Phone Pivot 页面”

本主题介绍如何通过向现有项目添加“Windows Phone Pivot 页面”来创建 Pivot 应用。您可以在 Windows Phone 开发人员中心的示例库中找到 Pivot 应用示例。

 

本主题包括以下部分。

  • 创建基本 Pivot 应用
  • 向 Pivot 项中添加控件和内容
  • 相关主题
 
创建基本 Pivot 应用

在这部分中,您将在 Visual Studio 中创建一个 Pivot 应用。此过程将向您的项目中添加一个“Windows Phone Pivot 页面”,该页面预填充一个 Pivot 控件和一些 PivotItem 控件。您将另外添加一个 PivotItem。

创建基本 Pivot 应用的步骤

  1. “开始”菜单启动 Visual Studio。

  2. 通过选择“文件” | “新建项目”菜单命令来创建一个新项目。

  3. 将显示“新建项目”窗口。展开“Visual C#”模板,然后选择“Windows Phone”模板。

  4. 选择 Windows Phone 应用  模板。填写所需的项目“名称”。

  5. 单击“确定”。将创建一个新项目并在 Visual Studio 设计器窗口中打开 MainPage.xaml。

  6. “解决方案资源浏览器”中,右键单击该项目,单击“添加”,然后单击“新建项”。选择“Windows Phone Pivot 页面”,然后单击页面底部的“添加”。 对该项目使用默认名称 PivotPage1.xaml

  7. 在 MainPage.xaml 中,向名为 ContentPanel 的网格中的 XAML 代码中添加以下内容:

    XAML
    <HyperlinkButton Content="Pivot Application Example" Height="57" 
    HorizontalAlignment="Left" Margin="49,116,0,0" Name="hyperlinkButton1" 
    VerticalAlignment="Top" Width="383" NavigateUri="/PivotPage1.xaml"/>
    注意:

    创建此超级链接的目的是为您的应用创建一个起点。在应用程序运行时,用户将点按此超级链接以前移到此 Pivot 体验。您不必使用超级链接作为 Pivot 应用的默认条目机制;超级链接仅用作本练习中使用的一个示例。可以将 Pivot 体验配置为当用户启动应用时立即可见。

  8. 在 PivotPage1.xaml 中,XAML 代码中的以下代码应该可见:

    XAML
    <!--LayoutRoot is the root grid where all page content is placed.--><Grid x:Name="LayoutRoot" Background="Transparent"><!--Pivot Control--><controls:Pivot Title="MY APPLICATION"><!--Pivot item one--><controls:PivotItem Header="item1"><Grid/></controls:PivotItem><!--Pivot item two--><controls:PivotItem Header="item2"><Grid/></controls:PivotItem></controls:Pivot></Grid>
    注意:

    前面的代码将创建一个 Pivot 控件并为其分配一个标题。接下来,您将创建两个 PivotItem 控件,每个控件分配一个标头。对于此项目,我们将创建三个 PivotItem 控件,在下一步中将再创建一个PivotItem。

  9. 在 <!--Pivot item two--> 部分后面,通过以下代码再添加一个 PivotItem 控件:

    XAML
       <!--Pivot item three.--><controls:PivotItem Header="item3"><Grid/></controls:PivotItem>
向 Pivot 项中添加控件和内容

在本节中,您将向每个 PivotItem 控件中添加各种控件和内容。

向第一个 Pivot 项中添加内容

对于第一个 PivotItem,您将添加包含环绕文字的 TextBlock 控件。

向第一个 Pivot 项添加内容的步骤

  • 向第一个 Pivot 项 <controls:PivotItem Header="item1"> 后面的 XAML 代码中添加以下代码。您必须首先删除现有的 <Grid/> 标记。

    XAML
    <Grid><!--Added TextBlock control with formatted text.--><TextBlockTextWrapping="Wrap"Style="{StaticResource PhoneTextLargeStyle}"><Run>This is a simple sample for the pivot control adding text.</Run><LineBreak/><LineBreak/><Run>You can put any content you want here...</Run></TextBlock>
    </Grid>
    
    注意:

    第一个 PivotItem 内容应该类似于本主题底部所示的插图。

向第二个 Pivot 项中添加内容

对于这个页面,您将添加包含背景图像和换行文本的分类内容。对于本主题,使用示例图像 samplePhoto.jpg。您必须相应更改下面的代码以容纳您的图片。

向第二个 Pivot 项添加内容的步骤

  • 向第二个 Pivot 项代码行 <controls:PivotItem Header="item2"> 后面的 XAML 代码中添加以下代码。您必须首先删除现有的 <Grid/> 标记。

    XAML
    <!--Added background image and text content.--><BorderBorderBrush="{StaticResource PhoneForegroundBrush}"BorderThickness="{StaticResource PhoneBorderThickness}"><Grid><ImageSource="samplePhoto.jpg"Stretch="UniformToFill"/><TextBlockText="Here is some generic content to take up space."TextWrapping="Wrap"Style="{StaticResource PhoneTextExtraLargeStyle}" /></Grid></Border>
    
    注意:

    第二个 PivotItem 内容应该类似于本主题底部所示的插图。

向第三个 Pivot 项中添加内容

对于最后一个 PivotItem,您将在 ListBox 控件内放置一系列字符串文本值。目的是表明您能够导航托管的控件。用户将能够上下垂直平移列表内容。

向第三个 Pivot 项添加内容的步骤

  1. 在 PivotPage1.xaml 中,向 XAML 代码中添加以下命名空间声明:

    XAML
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    注意:

    引用此程序集是向 ListBox 控件中添加多行字符串文本。

  2. 向第三个 PivotItem 代码行 <controls:PivotItem Header="item3"> 后面的 XAML 代码中添加以下代码。您必须首先删除现有的 <Grid/> 标记。

    XAML
    <!--This code adds a series of string text values.-->
    <Grid><ListBox FontSize="{StaticResource PhoneFontSizeLarge}"><sys:String>This</sys:String><sys:String>item</sys:String><sys:String>has</sys:String><sys:String>a</sys:String><sys:String>short</sys:String><sys:String>list</sys:String><sys:String>of</sys:String><sys:String>strings</sys:String><sys:String>that</sys:String><sys:String>you</sys:String><sys:String>can</sys:String><sys:String>scroll</sys:String><sys:String>up</sys:String><sys:String>and</sys:String><sys:String>down</sys:String><sys:String>and</sys:String><sys:String>back</sys:String><sys:String>again.</sys:String>         </ListBox>
    </Grid>
    注意:

    第三个 PivotItem 应该类似于本主题底部所示的插图。

  3. 通过选择“调试” | “启动调试”菜单命令运行应用。这将打开模拟器窗口并启动该应用,或者部署到您选择的设备。

    AP_CoreCon_PivotSample

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/400892.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PS图层混合模式中英文对照

英文 中文 原理介绍 Normal 正常 默认的模式。不和其他图层发生任何混合。 Dissolve 溶解 溶解模式产生的像素颜色来源于上下混合颜色的一个随机置换值&#xff0c;与像素的不透明度有关。 Behind 背后 只对图层的透明区域进行编辑。该种模式只有在图层的…

ESP8266 系统环境搭建

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…

无线网络配置

转载于:https://www.cnblogs.com/lingxzg/archive/2013/02/09/2909606.html

Java编程之反射中的注解详解

“注解”这个词&#xff0c;可谓是在Java编程中出镜率比较高&#xff0c;而且也是一个老生常谈的话题。我们之前在聊Spring相关的东西时&#xff0c;注解是无处不在&#xff0c;之前我们简单的聊过一些“注解”的相关内容&#xff0c;比如在Spring中是如何进行“注解”组合的。…

SCCM 2012 R2实战系列之十三:辅助站点部署

由于最近几个月一直处于AD升级项目中&#xff0c;很久没有更新SCCM的技术文档了。SCCM 2012中的辅助站点部署方法还是比较特别的&#xff0c;需要注意的地方也非常多&#xff0c;今天跟大家分享辅助站点的具体部署和配置方法。1. 前提条件加入域环境 安装IIS组件安装BITS和远程…

DevOps落地实践点滴和踩坑记录-(1)

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…

asp中日期时间函数介绍

date() 获取日期&#xff0c;格式&#xff1a;2004-2-28 time() 获取时间&#xff0c;格式&#xff1a;22:24:59 now() 获取日期和时间 格式&#xff1a; 2005-5-2 22:37:30 ddate() 获取年份&#xff1a;year(d) 获取月份&#xff1a;month(d) 获取日子&#xff1a;day(…

2014年度优秀员工代表发言稿

2019独角兽企业重金招聘Python工程师标准>>> 尊敬的各位领导和亲爱的同事们&#xff0c;大家好&#xff01; 作为优秀员工代表在这里发言&#xff0c;我很感谢刘总、周总、李总、漆总以及公司各层领导的信任和支持&#xff01;我感到十分荣幸&#xff0c;同时也感到…

[转] 我回答了90%的面试题,为什么还被拒?

这篇文章是在买买提上 FQ看到的&#xff0c;很受启发&#xff0c;特意转载于此。 原文地址: http://www.mitbbs.com/article_t/JobHunting/32327557.html 交流面试的时候&#xff0c;经常有朋友会问一个问题&#xff1a;我正确回答了90%的面试题&#xff0c;为什么被拒&#xf…

无需另配定时器在STM32 HAL下实现微秒级延时(兼容FreeRTOS)

目录前言一、代码部分二、使用和验证1.引入头文件2.初始化3.使用和验证三、可移植性总结前言 接触HAL库差不多两年了&#xff0c;一直苦于HAL库没有自带微秒级的延时&#xff0c;网上的前辈们给出的解决方案要么是改写HAL_Delay的延时时间&#xff0c;要么就是额外占用一个定时…

×××S 2012 交互式报表 -- 同步交互式排序

S 2012 交互式报表 -- 同步交互式排序步骤1&#xff1a;首先&#xff0c;在刚才的“交互式排序”示例报表中再拖拉一个“Chart”&#xff0c;设置为长条图&#xff0c;从报表数据窗口中将销售金额、销售数量拖至“Values”&#xff0c;将产品大类拖放至“Category Groups”区域…

SpringCloud GateWay 万字详解

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…

Debug和Release 老程序啊 调试之前 区分一下啊

...转载于:https://www.cnblogs.com/Early-Bird/p/6909536.html

我是怎样成长为系统架构师的

来这家公司从事信息化工作已经也有三个年头了&#xff0c;有必要对这三年的工作和成长以及不足之处做一个总结。在此之前&#xff0c;从2001年開始学习JAVA&#xff0c;那时候用Struts的开发的企业也不多&#xff0c;而我在的做项目的企业当时已经自己开发了Struts的高速开发平…

STM32 HAL 硬件IIC+DMA+简单图形库控制OLED

目录前言一、建立工程二、编写和移植前期准备驱动部分修改三、使用和验证结论&#xff08;2022年1月22日重制&#xff09;本文主要是移植带简单图形库的程序&#xff0c;如果只是实现DMA控制&#xff0c;建议看【0.96寸 OLED屏实现1500Fps的帧率】STM32 软件、硬件SPI、I2C驱动…

python创建分类器小结

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…

SPOJ 1676 矩阵乘法+DP

题意&#xff1a; 给定N (1 ≤ N ≤ 10)个长度不超过6的单词,求由大写字母组成长度为L的包含至少一个给定单词的字符串有多少种,答案 mod 10007,(1 ≤ L ≤ 10^6)。 题解&#xff1a; 这个题最早是在一个关于trie图的论文中看到了&#xff0c;最近jzh又讲到了这个题&#xff0c…

Java并发编程实战

程序等待某个同步IO操作完成&#xff0c;CPU将处于空间状态。 线程安全---多个线程交替访问某个类&#xff0c;调用方不需做任何的同步&#xff0c;这个类始终表现出正确的行为 不共享变量变量是不可变访问变量使用同步synchronized除了实现原子性&#xff08;确定临界区&#…

spring mvc ModelAndView向前台传值

今天在做项目的时候遇到一个问题&#xff0c;把第一个页面保存的id传到第三个页面中去用&#xff0c;原来是在controller层加了一个全局变量控制的&#xff0c;可是后来发现这个变量实现不了我要的功能&#xff0c;于是查了一下&#xff0c;原来ModelAndView这个类有个构造方法…

go-zero微服务实战系列(三、API定义和表结构设计)

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…