设为首页 收藏本站
查看: 729|回复: 0

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

[复制链接]

尚未签到

发表于 2015-5-9 09:50:10 | 显示全部楼层 |阅读模式
  用过Wp7手机的同学应该都对内置的Office印象深刻,每一个文档的图标长按会出现一个菜单,能够“固定到开始屏幕”,固定到开始屏幕的那个图标,点击之后,会直接打开该文档内容。
  又如,“人脉”中的某个联系人,长按能固定到开始屏幕,下次能更便捷的开启与该联系人的联系。
  又如,新浪微博的某个联系人,长按也能固定到开始屏幕,下次在开始屏幕直接点击他的头像,直接打开他的微博主页。传说中的暗恋功能:你在你的手机上关注了他/她,而他/她却不知道。
  
  这是一个不错的功能,这就是自订磁贴——深度链接。它能够直接把用户导航到你的应用中的某一个页面,而不再是只能从你的主页面进入。
  最近忙没太多时间写文章,今天做了个很粗糙的简单程序(能省的都省了,只为说明自订磁贴的问题,图片来源Bing),见下图:
  
DSC0000.png
  
  OK,now,how to……
  1、首页使用的两个正方形的控件,是HubTile;长按出现的那个菜单,是ContextMenu;这两个都需要使用SilverlightToolkit For WP7这个控件包,直接用NuGet下载就好了。(这两个对深度磁贴来说,都不是重点,你完全可以用一个Button或者其他的来进行)
  新闻1的那个XAML代码如下:
  




               
                    
                        
                    
               
               
                           
                                
                           
                 
            
  解释一下上面的代码,如果用户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.iyunv.com/vistach/archive/2012/02/01/Windows_Phone_WP7_Develop_Tile_StandardTileData_ShellTile_DeepLink.html

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-65162-1-1.html 上篇帖子: Windows Phone 7 不温不火学习之《ListBox 数据与Android ListView 数据绑定》 下篇帖子: Windows Phone 7 浏览器控件(WebBrowser) 支持历史记录,前进,后退,刷新。等功能
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表