zoukankan      html  css  js  c++  java
  • 与众不同 windows phone (36)

    [源码下载]


    与众不同 windows phone (36) - 8.0 新的瓷贴: FlipTile, CycleTile, IconicTile



    作者:webabcd


    介绍
    与众不同 windows phone 8.0 之 新的瓷贴

    • FlipTileData - 翻转瓷贴。继承了 wp7 时代的 StandardTileData
    • CycleTileData - 循环瓷贴
    • IconicTileData - 图标瓷贴



    示例
    1、演示 FlipTileData 的应用
    Tile/FlipTile.xaml

    <phone:PhoneApplicationPage
        x:Class="Demo.Tile.FlipTile"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
        xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        FontFamily="{StaticResource PhoneFontFamilyNormal}"
        FontSize="{StaticResource PhoneFontSizeNormal}"
        Foreground="{StaticResource PhoneForegroundBrush}"
        SupportedOrientations="Portrait" Orientation="Portrait"
        mc:Ignorable="d"
        shell:SystemTray.IsVisible="True">
    
        <Grid x:Name="LayoutRoot" Background="Transparent">
            <ScrollViewer>
                <StackPanel>
                    <Button Name="btnPin" Content="pin the flip tile" Margin="0 0 0 10" Click="btnPin_Click" />
                    <Image Source="/Tile/FlipTile1.png" />
                    <Image Source="/Tile/FlipTile2.png" />
                    <Image Source="/Tile/FlipTile3.png" />
                </StackPanel>
            </ScrollViewer>
        </Grid>
    
    </phone:PhoneApplicationPage>

    Tile/FlipTile.xaml.cs

    /*
     * FlipTileData - 翻转瓷贴。继承了 wp7 时代的 StandardTileData
     *     Title - 正面标题
     *     SmallBackgroundImage - 小图块正面背景
     *     BackgroundImage - 中图块正面背景
     *     WideBackgroundImage - 宽图块正面背景
     *     Count - 正面显示的 badge (徽章),范围 1 - 99
     *     BackTitle - 背面标题
     *     BackBackgroundImage - 中图块背面背景
     *     WideBackBackgroundImage - 宽图块背面背景
     *     BackContent - 中图块背面内容
     *     WideBackContent - 宽图块背面内容
     *     
     * 小图块大小:159 × 159
     * 中图块大小:336 × 336
     * 宽图块大小:691 × 336
     * 
     * 另:application icon 的大小是 100 × 100
     * 
     * 关于 Tile 的更多内容参见:
     * http://www.cnblogs.com/webabcd/archive/2012/06/27/2564975.html
     * http://www.cnblogs.com/webabcd/archive/2012/07/05/2577190.html
     */
    
    using System;
    using System.Windows;
    using Microsoft.Phone.Controls;
    using Microsoft.Phone.Shell;
    
    namespace Demo.Tile
    {
        public partial class FlipTile : PhoneApplicationPage
        {
            public FlipTile()
            {
                InitializeComponent();
            }
    
            private void btnPin_Click(object sender, RoutedEventArgs e)
            {
                FlipTileData flipTile = new FlipTileData()
                {
                    Title = "title",
                    BackTitle = "backTitle",
                    BackContent = "backContent",
                    WideBackContent = "wideBackContent",
                    Count = 10,
                    SmallBackgroundImage = new Uri("/Assets/AppTile.png", UriKind.Relative),
                    BackgroundImage = new Uri("/Assets/AppTile.png", UriKind.Relative),
                    WideBackgroundImage = new Uri("/Assets/AppTile.png", UriKind.Relative),
                    BackBackgroundImage = new Uri("/Assets/AppTile.png", UriKind.Relative),
                    WideBackBackgroundImage = new Uri("/Assets/AppTile.png", UriKind.Relative),
                };
    
                // 最后一个参数为是否支持宽图块
                ShellTile.Create(new Uri("/MainPage.xaml", UriKind.Relative), flipTile, true);
            }
        }
    }
    
    /*
    通过 xml 方式构造 flip tile 数据
    <?xml version="1.0" encoding="utf-8"?>
    <wp:Notification xmlns:wp="WPNotification" Version="2.0">
      <wp:Tile Id="[Tile ID]" Template="FlipTile">
        <wp:SmallBackgroundImage [Action="Clear"]>[small Tile size URI]</wp:SmallBackgroundImage>
        <wp:WideBackgroundImage Action="Clear">[front of wide Tile size URI]</wp:WideBackgroundImage>
        <wp:WideBackBackgroundImage Action="Clear">[back of wide Tile size URI]</wp:WideBackBackgroundImage>
        <wp:WideBackContent Action="Clear">[back of wide Tile size content]</wp:WideBackContent>
        <wp:BackgroundImage Action="Clear">[front of medium Tile size URI]</wp:BackgroundImage>
        <wp:Count Action="Clear">[count]</wp:Count>
        <wp:Title Action="Clear">[title]</wp:Title>
        <wp:BackBackgroundImage Action="Clear">[back of medium Tile size URI]</wp:BackBackgroundImage>
        <wp:BackTitle Action="Clear">[back of Tile title]</wp:BackTitle>
        <wp:BackContent Action="Clear">[back of medium Tile size content]</wp:BackContent>
      </wp:Tile>
    </wp:Notification>
    */


    2、演示 CycleTile 的应用
    Tile/CycleTile.xaml

    <phone:PhoneApplicationPage
        x:Class="Demo.Tile.CycleTile"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
        xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        FontFamily="{StaticResource PhoneFontFamilyNormal}"
        FontSize="{StaticResource PhoneFontSizeNormal}"
        Foreground="{StaticResource PhoneForegroundBrush}"
        SupportedOrientations="Portrait" Orientation="Portrait"
        mc:Ignorable="d"
        shell:SystemTray.IsVisible="True">
    
        <Grid x:Name="LayoutRoot" Background="Transparent">
            <ScrollViewer>
                <StackPanel>
                    <Button Name="btnPin" Content="pin the cycle tile" Margin="0 0 0 10" Click="btnPin_Click" />
                    <Image Source="/Tile/CycleTile1.png" />
                    <Image Source="/Tile/CycleTile2.png" />
                    <Image Source="/Tile/CycleTile3.png" />
                </StackPanel>
            </ScrollViewer>
        </Grid>
    
    </phone:PhoneApplicationPage>

    Tile/CycleTile.xaml.cs

    /*
     * CycleTileData - 循环瓷贴
     *     Title - 标题
     *     smallBackgroundImage - 小图块背景
     *     Count - badge (徽章),范围 1 - 99
     *     CycleImages - 中图块和宽图块所循环显示的背景图片的集合(最多 9 张图片)
     *     
     * 小图块大小:159 × 159
     * 中图块大小:336 × 336
     * 宽图块大小:691 × 336
     * 
     * 另:application icon 的大小是 100 × 100
     * 
     * 关于 Tile 的更多内容参见:
     * http://www.cnblogs.com/webabcd/archive/2012/06/27/2564975.html
     * http://www.cnblogs.com/webabcd/archive/2012/07/05/2577190.html
     */
    
    using System;
    using System.Windows;
    using Microsoft.Phone.Controls;
    using Microsoft.Phone.Shell;
    
    namespace Demo.Tile
    {
        public partial class CycleTile : PhoneApplicationPage
        {
            public CycleTile()
            {
                InitializeComponent();
            }
    
            private void btnPin_Click(object sender, RoutedEventArgs e)
            {
                CycleTileData cycleTile = new CycleTileData()
                {
                    Title = "title",
                    Count = 20,
                    SmallBackgroundImage = new Uri("/Assets/AppTile.png", UriKind.Relative),
                    CycleImages = new Uri[]
                    {
                        new Uri("/Assets/AppTile.png", UriKind.Relative), 
                        new Uri("/Assets/AppTile.png", UriKind.Relative), 
                        new Uri("/Assets/AppTile.png", UriKind.Relative), 
                        new Uri("/Assets/AppTile.png", UriKind.Relative), 
                        new Uri("/Assets/AppTile.png", UriKind.Relative), 
                        new Uri("/Assets/AppTile.png", UriKind.Relative), 
                        new Uri("/Assets/AppTile.png", UriKind.Relative)
                    }
                };
    
                // 最后一个参数为是否支持宽图块
                ShellTile.Create(new Uri("/MainPage.xaml", UriKind.Relative), cycleTile, true);
            }
        }
    }
    
    /*
    通过 xml 方式构造 cycle tile 数据
    <?xml version="1.0" encoding="utf-8"?>
    <wp:Notification xmlns:wp="WPNotification" Version="2.0">
      <wp:Tile Id="[Tile ID]" Template="CycleTile">
        <wp:SmallBackgroundImage [Action="Clear"]>[small Tile size URI]</wp:SmallBackgroundImage>
        <wp:CycleImage1 Action="Clear">[photo 1 URI]</wp:CycleImage1>
        <wp:CycleImage2 Action="Clear">[photo 2 URI]</wp:CycleImage2>
        <wp:CycleImage3 Action="Clear">[photo 3 URI]</wp:CycleImage3>
        <wp:CycleImage4 Action="Clear">[photo 4 URI]</wp:CycleImage4>
        <wp:CycleImage5 Action="Clear">[photo 5 URI]</wp:CycleImage5>
        <wp:CycleImage6 Action="Clear">[photo 6 URI]</wp:CycleImage6>
        <wp:CycleImage7 Action="Clear">[photo 7 URI]</wp:CycleImage7>
        <wp:CycleImage8 Action="Clear">[photo 8 URI]</wp:CycleImage8>
        <wp:CycleImage9 Action="Clear">[photo 9 URI]</wp:CycleImage9>
        <wp:Count Action="Clear">[count]</wp:Count>
        <wp:Title Action="Clear">[title]</wp:Title>
      </wp:Tile>
    </wp:Notification>
    */


    3、演示 IconicTile 的应用
    Tile/IconicTile.xaml

    <phone:PhoneApplicationPage
        x:Class="Demo.Tile.IconicTile"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
        xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        FontFamily="{StaticResource PhoneFontFamilyNormal}"
        FontSize="{StaticResource PhoneFontSizeNormal}"
        Foreground="{StaticResource PhoneForegroundBrush}"
        SupportedOrientations="Portrait" Orientation="Portrait"
        mc:Ignorable="d"
        shell:SystemTray.IsVisible="True">
    
        <Grid x:Name="LayoutRoot" Background="Transparent">
            <ScrollViewer>
                <StackPanel>
                    <Button Name="btnPin" Content="pin the iconic tile" Margin="0 0 0 10" Click="btnPin_Click" />
                    <Image Source="/Tile/IconicTile1.png" />
                    <Image Source="/Tile/IconicTile2.png" />
                    <Image Source="/Tile/IconicTile3.png" />
                </StackPanel>
            </ScrollViewer>
        </Grid>
    
    </phone:PhoneApplicationPage>

    Tile/IconicTile.xaml.cs

    /*
     * IconicTileData - 图标瓷贴
     *     Title - 标题
     *     Count - badge (徽章),范围 1 - 99
     *     SmallIconImage - 小图块和大图块的图标部分
     *     IconImage - 中图块的图标部分
     *     WideContent1 - 宽图块的第一行的文本
     *     WideContent2 - 宽图块的第二行的文本
     *     WideContent3 - 宽图块的第三行的文本
     *     BackgroundColor - 图块的背景颜色,默认为主题色
     *         注:如果需要指定背景色,其 alpha 必须是 255,否则无效
     * 
     * 注:对于图标来说只有白色和透明的概念,也就是说图标中的所有非透明的颜色都会被转换为白色
     * 
     * 小图块和大图块的图标部分的大小:110 × 110
     * 中图块的图标部分的大小:202 × 202
     * 
     * 另:application icon 的大小是 100 × 100
     * 
     * 关于 Tile 的更多内容参见:
     * http://www.cnblogs.com/webabcd/archive/2012/06/27/2564975.html
     * http://www.cnblogs.com/webabcd/archive/2012/07/05/2577190.html
     */
    
    using System;
    using System.Windows;
    using Microsoft.Phone.Controls;
    using Microsoft.Phone.Shell;
    using System.Windows.Media;
    
    namespace Demo.Tile
    {
        public partial class IconicTile : PhoneApplicationPage
        {
            public IconicTile()
            {
                InitializeComponent();
            }
    
            private void btnPin_Click(object sender, RoutedEventArgs e)
            {
                IconicTileData iconicTile = new IconicTileData()
                {
                    Title = "title",
                    Count = 30,
                    WideContent1 = "wideContent1",
                    WideContent2 = "wideContent2",
                    WideContent3 = "wideContent3",
                    SmallIconImage = new Uri("/Assets/AppTile.png", UriKind.Relative),
                    IconImage = new Uri("/Assets/AppTile.png", UriKind.Relative),
                    BackgroundColor = new Color { A = 255, R = 0, G = 128, B = 255 } // alpha 必须是 255,否则无效
                };
    
                // 最后一个参数为是否支持宽图块
                ShellTile.Create(new Uri("/MainPage.xaml", UriKind.Relative), iconicTile, true);
            }
        }
    }
    
    /*
    通过 xml 方式构造 iconic tile 数据
    <?xml version="1.0" encoding="utf-8"?>
    <wp:Notification xmlns:wp="WPNotification" Version="2.0">
      <wp:Tile Id="[Tile ID]" Template="IconicTile">
        <wp:SmallIconImage [Action="Clear"]>[small Tile size URI]</wp:SmallIconImage>
        <wp:IconImage Action="Clear">[medium/wide Tile size URI]</wp:IconImage>
        <wp:WideContent1 Action="Clear">[1st row of content]</wp:WideContent1>
        <wp:WideContent2 Action="Clear">[2nd row of content]</wp:WideContent2>
        <wp:WideContent3 Action="Clear">[3rd row of content]</wp:WideContent3>
        <wp:Count Action="Clear">[count]</wp:Count>
        <wp:Title Action="Clear">[title]</wp:Title>
        <wp:BackgroundColor Action="Clear">[hex ARGB format color]</wp:BackgroundColor>
      </wp:Tile>
    </wp:Notification>
    */



    OK
    [源码下载]

  • 相关阅读:
    SQL Server分页存储过程研究
    sql子查询 嵌套SELECT实用语句
    SQL语句优化
    CSS开发中常用技巧总结
    Html.DropDownList 的用法
    ADOStoredProc动态调用存储过程
    Sql Server 乐观锁和悲观锁理解和应用
    DOM 解析操作知识
    Java 中 Jar 命令的使用
    CDATA 基本知识
  • 原文地址:https://www.cnblogs.com/webabcd/p/3455067.html
Copyright © 2011-2022 走看看