zoukankan      html  css  js  c++  java
  • WindowsPhone 7.8 Tiles 3 : 7.8的Tiles利器mangopollo

    mangopollo:http://mangopollo.codeplex.com/

    利用mangopollo可以让我们在7.8方便的创建live tiles…

    Mangopollo will allow you to easily take advantage of new windows phone tiles (cyclic, flip, iconic) if your application is run from a Windows Phone 7.8 or 8 as well as new launchers if your application is run from a Windows Phone 8 while remaining compatible with windows phone 7.

    安装mangopollo可以通过nuget

    PM> Install-Package Mangopollo

     

    还是来看使用效果吧

    首先是判断:

            //判断是否wp8
            private void TestIfWP8_Click(object sender, RoutedEventArgs e)
            {
                if (Utils.IsWP8)
                {
                    MessageBox.Show("It's a Windows Phone 8 !");
                }
                else
                {
                    MessageBox.Show("It's a Windows Phone 7 !");
                }
            }
            //判断是否支持新的Tiles
            private void TestIfWP78_Click(object sender, RoutedEventArgs e)
            {
                if (Utils.CanUseLiveTiles)
                {
                    MessageBox.Show("It's a Windows Phone 7.8 or sup !");
                }
                else
                {
                    MessageBox.Show("It's a Windows Phone 7 !");
                }
            }

    创建CycleTile:

            private void CreateCycleTile_Click(object sender, RoutedEventArgs e)
            {
                if (!Utils.CanUseLiveTiles)
                {
                    MessageBox.Show("This feature needs Windows Phone 8");
                    return;
                }
                try
                {
                    var mytile = new CycleTileData
                        {
                            Title = "cyclic tile",
                            Count = 42,
                            SmallBackgroundImage = new Uri("/Assets/logo159x159.png", UriKind.Relative),
                            CycleImages = new List<Uri> {new Uri("/Assets/Image1.png", UriKind.Relative), new Uri("/Assets/Image2.png", UriKind.Relative), new Uri("/Assets/Image3.png", UriKind.Relative)}
                        };
    
    
    #if ALTERNATIVE_SOLUTION
                    var mytile = Mangopollo.Tiles.TilesCreator.CreateCyclicTile("cyclic tile", 42, new Uri("/Assets/logo159x159.png", UriKind.Relative), new List<Uri>() { new Uri("/Assets/Image1.png", UriKind.Relative), new Uri("/Assets/Image2.png", UriKind.Relative), new Uri("/Assets/Image3.png", UriKind.Relative) });
    #endif
                    ShellTileExt.Create(new Uri("/MainPage.xaml?msg=from%20cycle%20tile", UriKind.Relative), mytile, false);
                }
                catch
                {
                    MessageBox.Show("remove tile before create it again");
                }
            }
    
            private void CreateCycleTileWide_Click(object sender, RoutedEventArgs e)
            {
                if (!Utils.CanUseLiveTiles)
                {
                    MessageBox.Show("This feature needs Windows Phone 8");
                    return;
                }
    
                try
                {
                    var mytile = new CycleTileData
                        {
                            Title = "cyclic wide tile",
                            Count = 42,
                            SmallBackgroundImage = new Uri("/Assets/logo159x159.png", UriKind.Relative),
                            CycleImages = new List<Uri> {new Uri("/Assets/Image1.png", UriKind.Relative), new Uri("/Assets/Image2.png", UriKind.Relative), new Uri("/Assets/Image3.png", UriKind.Relative)}
                        };
    
    #if ALTERNATIVE_SOLUTION
                    var mytile = Mangopollo.Tiles.TilesCreator.CreateCyclicTile("cyclic wide tile", 42, new Uri("/Assets/logo159x159.png", UriKind.Relative), new List<Uri>() { new Uri("/Assets/Image1.png", UriKind.Relative), new Uri("/Assets/Image2.png", UriKind.Relative), new Uri("/Assets/Image3.png", UriKind.Relative) });
    #endif
                    ShellTileExt.Create(new Uri("/MainPage.xaml?msg=from%20wide%20cycle%20tile", UriKind.Relative), mytile, true);
                }
                catch
                {
                    MessageBox.Show("remove tile before create it again");
                }
            }
     
    效果:

    image

    创建IconicTile:

            private void CreateIconicTile_Click(object sender, RoutedEventArgs e)
            {
                if (!Utils.CanUseLiveTiles)
                {
                    MessageBox.Show("This feature needs Windows Phone 8");
                    return;
                }
     
                try
                {
                    var mytile = new IconicTileData
                        {
                            Title = "iconic tile",
                            Count = 8,
                            BackgroundColor = Colors.Purple,
                            IconImage = new Uri("/Assets/logo202x202.png", UriKind.Relative),
                            SmallIconImage = new Uri("/Assets/logo110x110.png", UriKind.Relative)
                        };
     
    #if ALTERNATIVE_SOLUTION
                    var mytile = Mangopollo.Tiles.TilesCreator.CreateIconicTile("iconic tile", 8, Colors.Purple, new Uri("/Assets/logo202x202.png", UriKind.Relative), new Uri("/Assets/logo110x110.png", UriKind.Relative));
    #endif
     
                    ShellTileExt.Create(new Uri("/MainPage.xaml?msg=from%20iconic%20tile", UriKind.Relative), mytile, false);
                }
                catch
                {
                    MessageBox.Show("remove tile before create it again");
                }
            }
     
     
            private void CreateIconicTileWide_Click(object sender, RoutedEventArgs e)
            {
                if (!Utils.CanUseLiveTiles)
                {
                    MessageBox.Show("This feature needs Windows Phone 8");
                    return;
                }
     
                try
                {
                    var mytile = new IconicTileData
                        {
                            Title = "iconic tile",
                            Count = 8,
                            BackgroundColor = Color.FromArgb(255, 200, 10, 30),
                            IconImage = new Uri("/Assets/logo202x202.png", UriKind.Relative),
                            SmallIconImage = new Uri("/Assets/logo110x110.png", UriKind.Relative),
                            WideContent1 = "Mangopollo Library",
                            WideContent2 = "use Windows Phone 8 features",
                            WideContent3 = "on Windows Phone 7 apps"
                        };
     
    #if ALTERNATIVE_SOLUTION
                    var mytile = Mangopollo.Tiles.TilesCreator.CreateIconicTile("iconic wide tile", 8, Colors.Gray, new Uri("/Assets/logo202x202.png", UriKind.Relative), new Uri("/Assets/logo110x110.png", UriKind.Relative), "Mangopollo Library", "created by", "Rudy Huyn");
    #endif
                    ShellTileExt.Create(new Uri("/MainPage.xaml?msg=from%20wide%20iconic%20tile", UriKind.Relative), mytile, true);
                }
                catch
                {
                    MessageBox.Show("remove tile before create it again");
                }
            }

    效果:

    image

    创建FlipTile:

            private void CreateFlipTile_Click(object sender, RoutedEventArgs e)
            {
                if (!Utils.CanUseLiveTiles)
                {
                    MessageBox.Show("This feature needs Windows Phone 8");
                    return;
                }
     
                try
                {
                    var mytile = new FlipTileData
                        {
                            Title = "wide flip tile",
                            BackTitle = "created by",
                            BackContent = "Rudy Huyn",
                            Count = 9,
                            SmallBackgroundImage = new Uri("/Assets/logo159x159.png", UriKind.Relative),
                            BackgroundImage = new Uri("/Assets/Background336x336_1.png", UriKind.Relative),
                            BackBackgroundImage = new Uri("/Assets/Background336x336_2.png", UriKind.Relative)
                        };
     
     
    #if ALTERNATIVE_SOLUTION
                    var mytile = Mangopollo.Tiles.TilesCreator.CreateFlipTile("wide flip tile", "created by", "Rudy Huyn", 9, new Uri("/Assets/logo159x159.png", UriKind.Relative), new Uri("/Assets/Background336x336_1.png", UriKind.Relative), new Uri("/Assets/Background336x336_2.png", UriKind.Relative));
    #endif
                    ShellTileExt.Create(new Uri("/MainPage.xaml?msg=from%20flip%20tile", UriKind.Relative), mytile, false);
                }
                catch
                {
                    MessageBox.Show("remove tile before create it again");
                }
            }
     
            private void CreateFlipTileWide_Click(object sender, RoutedEventArgs e)
            {
                if (!Utils.CanUseLiveTiles)
                {
                    MessageBox.Show("This feature needs Windows Phone 8");
                    return;
                }
     
                try
                {
                    var mytile = new FlipTileData
                        {
                            Title = "wide flip tile",
                            BackTitle = "created by",
                            BackContent = "Rudy Huyn",
                            Count = 9,
                            SmallBackgroundImage = new Uri("/Assets/logo159x159.png", UriKind.Relative),
                            BackgroundImage = new Uri("/Assets/Background336x336_1.png", UriKind.Relative),
                            BackBackgroundImage = new Uri("/Assets/Background336x336_2.png", UriKind.Relative),
                            WideBackContent = "This is a very long long text to demonstrate the back content of a wide flip tile",
                            WideBackgroundImage = new Uri("/Assets/Background691x336_1.png", UriKind.Relative),
                            WideBackBackgroundImage = new Uri("/Assets/Background691x336_2.png", UriKind.Relative)
                        };
     
    #if ALTERNATIVE_SOLUTION
                    var mytile = Mangopollo.Tiles.TilesCreator.CreateFlipTile("flip tile", "created by", "Rudy Huyn", "This is a very long long text to demonstrate the back content of a wide flip tile", 9, new Uri("/Assets/logo159x159.png", UriKind.Relative), new Uri("/Assets/Background336x336_1.png", UriKind.Relative), new Uri("/Assets/Background336x336_2.png", UriKind.Relative), new Uri("/Assets/Background691x336_1.png", UriKind.Relative), new Uri("/Assets/Background691x336_2.png", UriKind.Relative));
    #endif
                    ShellTileExt.Create(new Uri("/MainPage.xaml?msg=from%20wipe%20flip%20tile", UriKind.Relative), mytile, true);
                }
                catch
                {
                    MessageBox.Show("remove tile before create it again");
                }
            }

    效果:

    image

    更新主Tile:

            private void UpdateMainTile_Click(object sender, RoutedEventArgs e)
            {
                if (!Utils.CanUseLiveTiles)
                {
                    MessageBox.Show("This feature needs Windows Phone 8");
                    return;
                }
     
                var maintile = new FlipTileData
                    {
                        Title = "main tile",
                        BackTitle = "this is",
                        BackContent = "main tile",
                        Count = 3,
                        SmallBackgroundImage = new Uri("/Assets/logo159x159.png", UriKind.Relative),
                        BackgroundImage = new Uri("/Assets/Background336x336_2.png", UriKind.Relative),
                        BackBackgroundImage = new Uri("/Assets/Background336x336_1.png", UriKind.Relative),
                        WideBackContent = "This is a very long long text to demonstrate the back content of a wide flip tile",
                        WideBackgroundImage = new Uri("/Assets/Background691x336_2.png", UriKind.Relative),
                        WideBackBackgroundImage = new Uri("/Assets/Background691x336_1.png", UriKind.Relative)
                    };
     
    #if ALTERNATIVE_SOLUTION
                var maintile = Mangopollo.Tiles.TilesCreator.CreateFlipTile("main tile", "This is", "main tile", "This is a very long long text to demonstrate the back content of a wide flip tile", 9, new Uri("/Assets/logo159x159.png", UriKind.Relative), new Uri("/Assets/Background336x336_1.png", UriKind.Relative), new Uri("/Assets/Background336x336_2.png", UriKind.Relative), new Uri("/Assets/Background691x336_1.png", UriKind.Relative), new Uri("/Assets/Background691x336_2.png", UriKind.Relative));
    #endif
                ShellTile.ActiveTiles.First().Update(maintile);
            }

    效果:

    imageimage

    详细可以参见codeplex上的mangopollo的说明:http://mangopollo.codeplex.com/

  • 相关阅读:
    .Net转Java自学之路—SpringMVC框架篇九(拦截器)
    .Net转Java自学之路—SpringMVC框架篇八(RESTful支持)
    移动端高清适配、布局开发解决方案
    Webpack+Gulp+React+ES6开发
    gulp使用gulp-file-include将header/footer引入页面
    git在window与linux的换行符问题
    文件(图片)上传组件
    ie8、9跨域上传文件(图片)
    移动端rem布局背景图片使用以及sprite雪碧图
    iOS/Android 浏览器(h5)及微信中唤起本地APP
  • 原文地址:https://www.cnblogs.com/sun8134/p/2909865.html
Copyright © 2011-2022 走看看