用过Wp7手机的同学应该都对内置的Office印象深刻,每一个文档的图标长按会出现一个菜单,能够“固定到开始屏幕”,固定到开始屏幕的那个图标,点击之后,会直接打开该文档内容。

  又如,“人脉”中的某个联系人,长按能固定到开始屏幕,下次能更便捷的开启与该联系人的联系。

  又如,新浪微博的某个联系人,长按也能固定到开始屏幕,下次在开始屏幕直接点击他的头像,直接打开他的微博主页。传说中的暗恋功能:你在你的手机上关注了他/她,而他/她却不知道。

  这是一个不错的功能,这就是自订磁贴——深度链接。它能够直接把用户导航到你的应用中的某一个页面,而不再是只能从你的主页面进入。

  最近忙没太多时间写文章,今天做了个很粗糙的简单程序(能省的都省了,只为说明自订磁贴的问题,图片来源Bing),见下图:

  

  

  OK,now,how to……

  1、首页使用的两个正方形的控件,是HubTile;长按出现的那个菜单,是ContextMenu;这两个都需要使用SilverlightToolkit For WP7这个控件包,直接用NuGet下载就好了。(这两个对深度磁贴来说,都不是重点,你完全可以用一个Button或者其他的来进行)

  新闻1的那个XAML代码如下:

  

<toolkit:HubTile HorizontalAlignment="Left" Margin="21,31,0,0" VerticalAlignment="Top" d:LayoutOverrides="Width, Height" Source="Images/t1.png" Title="新闻1" Message="111111"><i:Interaction.Triggers><i:EventTrigger EventName="Tap"><ec:NavigateToPageAction TargetPage="/NewsView.xaml?id=1"/></i:EventTrigger></i:Interaction.Triggers><toolkit:ContextMenuService.ContextMenu><toolkit:ContextMenu><toolkit:MenuItem Header="固定到开始菜单" Click="MenuItem_Hub_Click1" /></toolkit:ContextMenu></toolkit:ContextMenuService.ContextMenu></toolkit:HubTile>

  解释一下上面的代码,如果用户Tap了这个HubTile,直接进入新闻1的详情页面。如果长按,触发菜单。

  2、上面的MenuItem_Hub_Click1的处理程序:

  

private void MenuItem_Hub_Click1(object sender, RoutedEventArgs e)        {            ViewOperate.PinToStart("新闻1", "/Images/t1.png","新闻1","1111","","/NewsView.xaml?id=1");        }

  3、ViewOperate类(名字可以自己取):

  

using System;using System.Linq;using Microsoft.Phone.Shell;

namespace PinToStart{public class ViewOperate    {public static void PinToStart(string title, string image, string backTitle, string backContent, string backImage, string url)        {//如果存在则删除,并在下面重新Pin到桌面            ShellTile oldTile = ShellTile.ActiveTiles.FirstOrDefault                (e => e.NavigationUri.ToString().Contains(url));if (oldTile != null)            {                oldTile.Delete();            }

//生成Tile            StandardTileData myTile = new StandardTileData            {                BackgroundImage = new Uri(image, UriKind.Relative),                Title = title,                Count = 0,                BackTitle = backTitle,                BackContent = backContent,                BackBackgroundImage = new Uri(backImage, UriKind.Relative)            };//固定到开始界面            ShellTile.Create(new Uri(url, UriKind.Relative), myTile);        }    }}

  很简单,完成~

  在提醒一句:上面的示例为了简单起见和时间问题,很多代码写的很不优美,建议大家自行改进。

  附源码下载: http://vdisk.weibo.com/s/2fmlH

  

转载请注明出处~  http://www.cnblogs.com/vistach/archive/2012/02/01/Windows_Phone_WP7_Develop_Tile_StandardTileData_ShellTile_DeepLink.html

转载于:https://www.cnblogs.com/vistach/archive/2012/02/02/Windows_Phone_WP7_Develop_Tile_StandardTileData_ShellTile_DeepLink.html

Windows Phone 7(WP7)开发 自订磁贴(深度链接)相关推荐

  1. Windows Phone(三)WP7版 记账本 开发(使用SQLite数据库)

    用这个SQLite数据库太纠结了..., ( O(∩_∩)O~欢迎拍砖...) ,所有代码砍掉了try...catch之类的东东,是为了尽可能简约明朗的说明问题. 第一部分: 遇到的问题 : 1. 在 ...

  2. WP7开发系列——Windows Phone 7 开发环境搭建

    最近windows phone 7越来越火,多款搭载WP7的手机也将在今年上半年登陆大陆市场.众所周知,微软和诺基亚的合作非常紧密,而诺基亚在中国大陆市场有着精耕细作的营销渠道.与此同时,微软与联想. ...

  3. [windows phone 7开发]搭建WP7开发环境

    上次已经有提到windows phone 7的开发环境搭建,其实非常的容易,没有什么困难的,我觉得程序员都可以搞定. 同时发现网络上得基本都同一个作者的文章被转来转去,但是其实人家的是比较早的,其实感 ...

  4. 快速构建Windows 8风格应用32-构建辅助磁贴

    引言 Windows Phone中,我们开发者可能会开发的一个功能点是将数据列表中某一项"Pin To Start(固定到开始屏幕)",大家都知道这种固定到开始屏幕的磁贴叫做辅助磁 ...

  5. Windows Phone 8初学者开发—第22部分:用演示图板创建卷盘的动画

    原文 Windows Phone 8初学者开发-第22部分:用演示图板创建卷盘的动画 第22部分: 用演示图板创建卷盘的动画 原文地址:http://channel9.msdn.com/Series/ ...

  6. 人人网 Windows Phone 7 应用开发起步

    目前,人人网在国内高校学生中的普及率非常高.前段时间,大概是11月下旬的样子,人人网发布了Windows Phone 7客户端的公测版.我想,Windows Phone 7本地化的优劣,直接关系到其将 ...

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

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

  8. 微软开放Windows Phone 7中文开发中心

    Apple的App Store的成功,推动了中国移动互联网的发展,在中国移动应用开发大会时,众多业内知名公司和专家,纷纷表示2011年移动互联网将成为新一轮的焦点.而世界级的移动应用服务商也逐渐将目光 ...

  9. 【Win10应用开发】自定义磁贴通知的排版

    [Win10应用开发]自定义磁贴通知的排版 原文:[Win10应用开发]自定义磁贴通知的排版 前面老周用了两篇烂文,向大家介绍了Adaptive磁贴的模板使用.那些XML模板已经很强大了,不过,如果你 ...

最新文章

  1. SICK LMS151-10100使用攻略
  2. Dubbo服务引用过程
  3. 【湖南】2021年下半年软考报考时间及通知
  4. c++ 32位有符号的整数_【LeetCode】字符串分类字符串转换整数 (atoi)
  5. 基于ELK的简单数据分析
  6. 计算机网络——链路层之停止等待协议
  7. TensorFlow从1到2 | 第五章 非专家莫入!TensorFlow实现CNN
  8. 强悍的 Linux —— 常用 shell
  9. python实现键盘自动输入
  10. 怎样为Windows7系统设置快速启动栏
  11. 如何使用串口调试助手(调试串口)
  12. 20221024 matlab快速画图中图
  13. ISO8583接口的详细资料
  14. 韩顺平Linux教程学习笔记
  15. Kinect安装与使用(一)
  16. iOS应用的启动流程和优化详解
  17. [论文阅读] Self-Sustaining Representation Expansion for Non-Exemplar Class-Incremental Learning
  18. SpringBoot整合TICK(Telegraf+InfluxDB+Chronograf +Kapacitor)监控系列之一:InfluxDB
  19. 真假金士顿U盘大拆解
  20. openlayers3开发教程_开始

热门文章

  1. python标识运算符_讲解Python中的标识运算符
  2. java 复制一个数组_浅谈Java中复制数组的方式
  3. c语言链表把多少分以上打出来,大神帮我看一下怎么输入输出一个链表,我输入了但是没输出啊...
  4. 机房速度和带宽测试的简单方法
  5. 5-29 vscode占位
  6. springboot profiles
  7. 11:数值的整数次方
  8. 使用tomcat的jndi方式连接mysql的字符编码设置
  9. 集群中几种session同步解决方案的比较[转]
  10. java定时任务,每天定时执行任务