原文:C# Windows Phone 8 WP8 高级开发,制作不循环 Pivot ,图片(Gallery)导览不求人! 内附图文教学!!

一般我们在开发Winodws Phone APP 的时候往往需要使用照片浏览的功能,但是在Windows Phone 8 SDK 中的控制向并没有提供类似Gallery的元件(好比 Android 的 ViewPager),这对开发者来说是非常不方便的,因为如果要自己制作一个控制项是非常的颢时间,而且说不定还有修不完的Bug,所以我们可以透过修改WP8 SDK 的Pivot范本修改来达到类似的效果唷!

?

本文将引导您制作不循环 Pivot ,图片(Gallery)导览不求人!!

?

原理:

在头尾新增一个空白的页面,当一致空白页面时,将Pivot转跳至前一个。

?

?

步骤一:

开启Pivot的新专案

?

步骤二:

修改MainPage.xaml

1.将phone:Pivot的Title 删除

2.将phone:PivotItem的Header删除

?

步骤二:

将phone:PivotItem底下的phone:LongListSelector也都删除

并补上自订的内容,这边以图片为例,弄起来会像下面这样:

?

<phone:Pivot >
<!--内容1-->
<phone:PivotItem Margin="0" >
<Grid>
<Image Source="/Assets/1.jpg" />
</Grid>
</phone:PivotItem>
<!--内容2-->
<phone:PivotItem Margin="0" >
<Grid>
<Image Source="/Assets/2.jpg" />
</Grid>
</phone:PivotItem>
<!--内容3-->
<phone:PivotItem Margin="0" >
<Grid>
<Image Source="/Assets/3.jpg" />
</Grid>
</phone:PivotItem> </phone:Pivot>

?

步骤三:

在头跟尾在各插入一个空白的PivotItem

结果就会像这样子:

?

步骤四:

我们需要帮Pivot命名,并且设定SelectionChanged的事件。

命名成MyPivot

?

<phone:Pivot x:Name="MyPivot" SelectionChanged="Pivot_SelectionChanged" >

?

步骤五:

打开MainPage.xaml.cs的Pivot_SelectionChanged方法底下键入以下程式码。

   1:  private void Pivot_SelectionChanged(object sender, SelectionChangedEventArgs e)
   2:  {
   3:      if (MyPivot.SelectedIndex == 0)
   4:      //如果目前页数为0,则跳到第一页
   5:      {
   6:          Dispatcher.BeginInvoke(() =>
   7:          {
   8:              MyPivot.SelectedIndex = 1;
   9:          });
  10:      }
  11:      if (MyPivot.SelectedIndex == (MyPivot.Items.Count - 1))
  12:      //如果目前页数=最後一页 则跳到倒数第二页
  13:      {
  14:          Dispatcher.BeginInvoke(() =>
  15:          {
  16:              MyPivot.SelectedIndex = (MyPivot.Items.Count - 2);
  17:          });
  18:  ?
  19:      }
  20:  ?
  21:  }

?

步骤六:

执行! 恩...完美运行!!? 突然觉得世界很美好

?

如此一来便可以制作不循环的Pivot罗!

?

文章中的叙述如有观念不正确错误的部分,欢迎告知指正 谢谢

转载请注明出处,并且附上本篇文章网址 !? 感谢。'

SUKI

HOLIESTAR

DotBlogs Tags:

C#

Gallery

Pivot

Visual Studio

Windows Phone 8

Xaml

关连文章

Visual Studio 双栏查看程式码 快速掌握架构,加速开发必看 ! ! (内附影片教学)

Visual Studio 2013 新功能,程式码再长也不会迷路,全新卷轴地图模式 ! 加速开发必看 !! (内附影片展示)

C# Windows Phone 8 WP8 , 文字超连结到网页 免打程式码,Xaml就搞定 ! !

C# Windows Form 解决 Icon在开始工具列模糊的问题,字体大小150% 高解析度完美运行。

C# Windows Phone 8 WP8 高级开发,制作不循环 Pivot ,图片(Gallery)导览不求人! 内附图文教学!!的更多相关文章

  1. iOS开发系列--无限循环的图片浏览器

    --UIKit之UIScrollView 概述 UIKit框架中有大量的控件供开发者使用,在iOS开发中不仅可以直接使用这些控件还可以在这些控件的基础上进行扩展打造自己的控件.在这个系列中如果每个控件 ...

  2. WindowsPhone开发—— 使用手绘图片做景区导览地图

    前些日子在做景区App遇到需求,使用手绘图片做一个简易的地图,支持放大缩小平移以及显示景点Mark,安卓上可以使用一个叫做“mAppWidget”的开源库来完成,WP上有人建议用ArcGIS,但是考虑 ...

  3. WP8.1开发中关于媒体(图片)文件的生成操作,属性如何设置(内容/嵌入资源等);

    (转载)WindowsPhone问题笔记-- 正确选择build action 解决媒体资源无法读取问题 链接:http://www.cnblogs.com/qinxg/archive/2012/07 ...

  4. C# Windows Phone 8 WP8 , 文字超连结到网页 免打程式码,Xaml就搞定 ! !

    原文:C# Windows Phone 8 WP8 , 文字超连结到网页 免打程式码,Xaml就搞定 ! ! 一般我们在开发Windows Phone 8 APP ,有时会需要超连结连到其他的网页,但 ...

  5. C# Windows Phone 8 WP8 开发,将WebClient的DownloadStringCompleted事件改成非同步的awiat方法。

    原文:C# Windows Phone 8 WP8 开发,将WebClient的DownloadStringCompleted事件改成非同步的awiat方法. 一般我们在撰写Windows Phone ...

  6. C# Windows Phone 8 WP8 开发,取得手机萤幕大小两种方法。

    原文:C# Windows Phone 8 WP8 开发,取得手机萤幕大小两种方法. 一般我们在开发Windows Phone App时,需要取得萤幕的大小来自定义最佳化控制项的大小,但是开如何取得萤 ...

  7. [笔记] C# Windows Phone 8 WP8 开发,判断目前网路是否可用。

    原文:[笔记] C# Windows Phone 8 WP8 开发,判断目前网路是否可用. 常常我们在开发Windows Phone 8 App时会使用网路来读取网页的资料或其他开放平台的Json.X ...

  8. C# Windows Phone 8 WP8,切换各国语系免重开机 加速开发 送审有效率!!

    原文:C# Windows Phone 8 WP8,切换各国语系免重开机 加速开发 送审有效率!! 一般我们在开发Windows Phone 8 时,会考虑到各国语言的问题,但是你有想过吗?用实体手机 ...

  9. WP8.1 Windows Phone 8.1开发:何如定义Pivot头部样式、定义Pivot头部颜色

    Windows Phone 8.1 ,如何自定义Pivot头部样式?用Pivot控件完成这样的效果. 网上找了好久,只找到了windows phone 8的解决方案. 终于一个大神给支了招,我觉得我有 ...

随机推荐

  1. Apache Lucene

    1.Lucene  -全文搜索引擎 Apache Lucene 是一个基于Java的全文搜索引擎,利用它能够轻易的为Java软件添�全文搜索引擎的功能. Lucene最重要的工作是替文件的每个字索引, ...

  2. Latin1的所有字符编码

    ISO-8859-1 (ISO Latin 1) Character Encoding Contents The characters at a glance Character codes and ...

  3. ogre sample分析(一)

    ogre自带了一些例子,逐个过一遍并自己动手做一些调整 1 Sample_BezierPatch:这个例子直接用数值来构造顶点缓存并创建entity,这种方法一般只能创建简单对象,本人以为复杂对象顶点 ...

  4. 什么是Java “实例化”

    实例化:对象也是引用数据类型,只能使用new运算符从堆中分配内存: 使用已经定义好的类,创建该类对象的过程称为“实例化”. 只有先实例化类的对象,才可以访问到类中的成员(属性和方法). 使用成员运算符 ...

  5. Android支付接入(七):Google In-app-Billing

    前段时间有事请耽搁了,今天跟大家一起看下Google的in-app Billing V3支付.    如果没有Google Play此处附上安装Google Play的一键安装器的链接(需要Root权 ...

  6. 内存级别/栅栏 ( Memory Barriers / Fences ) – 翻译

    翻译自:Martin Thompson – Memory Barriers/Fences 在这篇文章里,我将讨论并发编程里最基础的技术–以内存关卡或栅栏著称.那让进程内的内存状态对其它进程可见. CP ...

  7. 只能从脚本中调用在类定义上有[ScriptService]属性的Web服务问题的解决方案

    ajax调用webservice中的接口时, 会出现[只能从脚本中调用在类定义上有[ScriptService]属性的...]的异常. 这是因为, 在.net3.5中, 访问web服务, 要对web服 ...

  8. 搭建php环境时解决jpeg6 make: ./libtool:命令未找到

    搭建php环境时解决jpeg6 make: ./libtool:命令未找到 [root@bogon jpeg-6b]# make; make install ./libtool --mode=comp ...

  9. codechef Sums in a Triangle题解

    Let's consider a triangle of numbers in which a number appears in the first line, two numbers appear ...

  10. MapReduce 异常 LongWritable cannot be cast to Text

    有一个txt文件,内容格公式是这样的: 深圳订做T恤 5729944 深圳厂家t恤批发 5729945 深圳定做文化衫 5729944 文化衫厂家 5729944 订做文化衫 5729944 深圳t恤 ...