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

Windows 8 Metro App学习笔记(九)—磁砖

[复制链接]
YunVN网友  发表于 2015-5-22 11:06:22 |阅读模式
  瓷砖,即桌面显示的Tile,它的创建和生命周期都可以由用户自由创建并可以直接访问一个应用程序,还可以为信息的及时推送带来很多的方便。在Windows 8中,由SecondaryTile对象负责。
  
  首先了解一下它的属性
  Arguments:它是显示在桌面Tile上程序定制的一些信息,当通过Tile激活一个APP时,可以用该值作一些处理
  BackgroundColor:Tile的背景颜色
  DisplayName:类似提示信息,当用户移到该Tile时,这个信息会显示
  ForegroundText:字体颜色,只有Dark和Light两种
  Logo:Logo图标,当创建一个方形的瓷砖中使用的标志形象。当你创建一个正方形或全瓷砖时,这个属性是必需的
  ShortName:这个简短信息是直接显示在桌面Tile上的
  SmalLogo:小图标,在查询应用程序结果集中,就显示该小图标
  TileId:这是一个标识瓷砖的唯一标识
  TileOptions:当给予ShortName时去指定一些选项,其包括四个选项(None,ShowNameOnLogo,ShowNameOnWideLogo,CopyOnDeployment)
  WideLogo:在创建宽的Tile时,设置图片Logo
  
  迫不及待想试一下到底怎么Pin到桌面了,得先构造一个SecondaryTile对象
DSC0000.png
  
  我们可以根据不同的需求选择不同的构造函数
  看了一下Create方法,哦,还真多
   DSC0001.png
  

  发现没,Create与Delete方法是对应的,下面了解一下具体的用法

Uri logo = new Uri("ms-appx:///images/squareTile-sdk.png");
Uri smallLogo = new Uri("ms-appx:///images/smallTile-sdk.png");
string tileActivationArguments = "timeTileWasPinned=" + DateTime.Now.ToLocalTime().ToString();
SecondaryTile secondaryTile = new SecondaryTile(MainPage.tileId, "Title Test",    "Name of the tile the user sees when searching for the tile",                                                     tileActivationArguments,                                   TileOptions.ShowNameOnLogo,logo);
secondaryTile.ForegroundText = ForegroundText.Dark;         
secondaryTile.SmallLogo = smallLogo;         
bool isPinned = await secondaryTile.RequestCreateForSelectionAsync(GetElementRect((FrameworkElement)sender), Windows.UI.Popups.Placement.Right);

  看下效果:
DSC0002.png
  
  移除Tile

SecondaryTile secondaryTile = new SecondaryTile(MainPage.tileId);              
bool isUnpinned = await secondaryTile.RequestDeleteForSelectionAsync(GetElementRect((FrameworkElement)sender), Windows.UI.Popups.Placement.Below);
  发现没有,创建和移除时都会有一个对话似的那种,Create时还可以修改ShortName。
  
  写的这里不禁有些疑惑,这里的NavigateUri哪里去了,当我从桌面Tile怎么重新激活APP,并跳转到我指定的页面呢??仔细看了一下MSDN的Sample,原来我们上面的Arguments就是至关重要所在,之所以这里没有NavigateUri的概念,是因为Win8 Metro App不像Windows Phone7,它类库没有Page的Navigate概念,除非自己封装。

async protected override void OnLaunched(LaunchActivatedEventArgs args)
{           
Window.Current.Content = new MainPage(args.Arguments);
Window.Current.Activate();
}
  
  APP 开启时,可以接收到Tile的Arguments值,通过该值我们可以去作逻辑处理,或激活某个页面,相比Windows Phone 7,给了我们更大的自由选配的空间,不是么??
  
  SecondaryTile还有两个方法也经常用法
  Exist(TileId),顾名思义,检测是否存在对应的Tile
  FindAllAsync() 查找所有的Tile,该方法也重载了多个方法,返回的是IReadOnlyList对象
    这就是SecondaryTile的创建与移除,用法相对简单,当然我们使用Tile的最大好处是可以实现信息更新及时推送,这就涉及到PushNotification的用法了,先研究下~随后整理…

运维网声明 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-69516-1-1.html 上篇帖子: Windows phone 8学习准备 下篇帖子: 第一个Windows Phone 8 程序开发
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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