WP8:Tiles,各显神通

打开wp8模拟器,开始玩主页上的titles,之前看一些宣传材料中提到,wp8的title除了支持不同的规格大小之外,也增加了点新花样。

虽然没有惊喜,但还是乐意玩一玩的。

wp8现支持三种title:Flip Tile;Iconic Tile;Cycle Tile。

这些title都有三种规格:small;medium;wide。

我们一个个来看吧。

1.Flip Tile

先放上一张官方的说明图:

和wp7的standard tile很像,对不对。当然像啦,人家就是从那演变过来的。

接下来我实现的只是把图标,pin to start

View Code
FlipTileData data = new FlipTileData()
            {
                //标题
                Title = "titles",//正面
                BackTitle = "background titles",//背面

                //内容
                BackContent = "这是titles测试",
                WideBackContent = "正在测试titles,这是wide情况之下的内容",

                Count = 10,//设置为0时,title中就自动不显示数目

                //图片
                SmallBackgroundImage = new Uri("Images/159_159.jpg", UriKind.Relative),

                BackgroundImage = new Uri("Images/336_336.jpg", UriKind.Relative),
                BackBackgroundImage = new Uri("Images/336_336back.png", UriKind.Relative),//没有设置背面的背景图片,就默认是当前系统风格的背景色

                WideBackgroundImage = new Uri("Images/691_336.jpg", UriKind.Relative),
                WideBackBackgroundImage = new Uri("Images/691_336back.png", UriKind.Relative)
            };
            try
            {

                ShellTile shellTile = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains("ID=FLIP"));
                if (shellTile != null)
                {
                    //如果title已经pin to start,就更新title
                    shellTile.Update(data);
                }
                else
                    //创建title
                    ShellTile.Create(new Uri("/MainPage.xaml?ID=FLIP", UriKind.Relative), data, true);

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

2.Iconic Tile

依然看下官方的说明图:

我在模拟器上运行的时候,wide size情况下有点不一样。如下图:

 

白色的方块本来应该显示图片的,可是不知道为什么iconic title,图片全都显示不出来?大家是不是也这样呢?

 

View Code
IconicTileData data = new IconicTileData()
            {
                //背景色
                BackgroundColor =  System.Windows.Media.Colors.Green,
                Count = 6,
                Title = "ICONIC TITLE",
                //图标
                SmallIconImage = new Uri("Images/110_110.jpg", UriKind.Relative),//这几张图片,模拟器上显示不出来呢?问题解决的朋友请速告诉我哦。
                IconImage = new Uri("Images/202_202.jpg", UriKind.Relative),

                //只有在图片最大化的时候,才会看到这些content
                WideContent1 = "content 1",
                WideContent2 = "content 2",
                WideContent3 = "content 3"

            };
            try
            {

                ShellTile shellTile = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains("ID=ICON"));
                if (shellTile != null)
                {
                    //如果title已经pin to start,就更新title
                    shellTile.Update(data);
                }
                else
                    ShellTile.Create(new Uri("/MainPage.xaml?ID=ICON", UriKind.Relative), data, true);

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

3.Cycle Tile

Cycle Tile突然找不到图了,但是他的风格和主页上的photo是一样的,会连续播放若干张图。之前有人说是主页上的people的九宫格风格,但其实不是哦。其实个人更喜欢九宫格风格来着,感觉更有趣。

cycle tile最多可以放9张图片。但是这9张图片要适应tile的三个大小,自适应之后显示起来总有些不理想。不过既然主旨在于展示图片,当然要首先考虑wide和medium两种风格啦。

 

View Code
//供连续播放的图片地址,最多可以放9张
            List<Uri> uriList = new List<Uri>()
            {
                new Uri("Images/159_159.jpg", UriKind.Relative),
                new Uri("Images/159_159back.png", UriKind.Relative),
                new Uri("Images/202_202.jpg", UriKind.Relative),
                new Uri("Images/1.jpg", UriKind.Relative),
                new Uri("Images/2.jpg", UriKind.Relative),
                new Uri("Images/3.jpg", UriKind.Relative),
                new Uri("Images/4.jpg", UriKind.Relative),
                new Uri("Images/5.jpg", UriKind.Relative),
                new Uri("Images/6.jpg", UriKind.Relative)
                //new Uri("Images/7.png", UriKind.Relative)
            };
            CycleTileData data = new CycleTileData()
            {
                Count = 3,
                Title = "CycleTile",
                SmallBackgroundImage = new Uri("159_159.jpg", UriKind.Relative),
                CycleImages = uriList//这样怎么根据图标的size显示图片呢?
            };
            try
            {

                ShellTile shellTile = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains("ID=CYCLE"));
                if (shellTile != null)
                {
                    //如果title已经pin to start,就更新title
                    shellTile.Update(data);
                }
                else
                    ShellTile.Create(new Uri("/MainPage.xaml?ID=CYCLE", UriKind.Relative), data, true);

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }


官方推荐的图片像素大小:

 源代码:

http://vdisk.weibo.com/s/jVjVS

 

 

posted @ 2012-12-06 15:44  翾_free  阅读(426)  评论(0编辑  收藏  举报