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/

  • 相关阅读:
    Windows下路由表分析
    VMware Workstation网络连接的三种模式
    VMware Workstation环境下的三种网络配置桥接,NAT和HOST-ONLY
    Binary Tree Right Side View
    Count Complete Tree Nodes
    Flatten Binary Tree to Linked List
    Valid Anagram
    SELINUX部分的权限规则问题鸟哥7.4&&7.5?????
    网络五层架构及各层使用的协议
    Linux的echo -n -e 两个参数的含义
  • 原文地址:https://www.cnblogs.com/sun8134/p/2909865.html
Copyright © 2011-2022 走看看