windows phone 7 学习笔记 五 TileSample

WP 7 为应用程序设置为瓦片.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;

namespace WPTileSample
{
    public partial class MainPage : PhoneApplicationPage
    {
        // Constructor
        public MainPage()
        {
            InitializeComponent();
        }

        private static readonly string SecondaryTileUriSource = "Source=SeconaryTile";

        protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);

            //查找当前是否是瓦片
            ShellTile secondaryTile = this.FindTile(SecondaryTileUriSource);
            this.cbShowTile.IsChecked = secondaryTile != null;
        }

        /// <summary>
        /// 查找当前名称是否在瓦片中
        /// </summary>
        /// <param name="partOfUri"></param>
        /// <returns></returns>
        private ShellTile FindTile(string partOfUri)
        { 
            //当前应该程序是不是瓦片
            ShellTile shellTile = ShellTile.ActiveTiles.FirstOrDefault(
                tile => tile.NavigationUri.ToString().Contains(partOfUri));

            return shellTile;
        }

        private void cbShowTile_Checked(object sender, RoutedEventArgs e)
        {
            // secondary tiles can be created only as the result
            // of user input in an application
            ShellTile tile = this.FindTile(SecondaryTileUriSource);

            if (tile == null)
            {
                // because the UI will navigate to Start
                // when a new secondary tile is created
                // only one secondary tile can be created at a time
                StandardTileData tileData = this.GetSecondaryTileData();

                // having a unique NavigationUri is necessary for distinguishing this tile
                string tileUri = string.Concat("/MainPage.xaml?", SecondaryTileUriSource);
                ShellTile.Create(new Uri(tileUri, UriKind.Relative), tileData);
            }
        }

        //删除瓦片
        private void cbShowTile_Unchecked(object sender, RoutedEventArgs e)
        {
            ShellTile tile = this.FindTile(SecondaryTileUriSource);
            if (tile != null)
            {
                tile.Delete();
                MessageBox.Show("Secondary tile deleted.");
            }
        }

        /// <summary>
        /// 设置瓦片
        /// </summary>
        /// <returns></returns>
        private StandardTileData GetSecondaryTileData()
        {
            StandardTileData tileData = new StandardTileData
            {
                Title = "Secondary Tile",
                BackgroundImage = new Uri("/Images/logo.png", UriKind.Relative),
                Count = 5,
                BackTitle = "Secondary Tile",
                BackBackgroundImage = new Uri("", UriKind.Relative),
                BackContent = "WPG Add Remove Tile Sample"
            };

            return tileData;
        }
    }
}

0VG3$25L$FX242[J5UN0HFX

posted @ 2012-01-04 20:44  阳光追梦  阅读(396)  评论(0编辑  收藏  举报
/*快速评论*/ #div_digg { position: fixed; bottom: 10px; right: 15px; border: 2px solid #ECD7B1; padding: 10px; width: 140px; background-color: #fff; border-radius: 5px 5px 5px 5px !important; box-shadow: 0 0 0 1px #5F5A4B, 1px 1px 6px 1px rgba(10, 10, 0, 0.5); } /** 不知道为什么页面加载完成时还读不到div_digg。可能也是动态生成的。 所以这里只能用定时器 不断的读取,当读取到了再给它动态添加快捷按钮 **/ //自定义 定时器[当元素加载完成是执行回调函数] function customTimer(inpId,fn) { if ($(inpId).length) { fn(); } else { var intervalId = setInterval(function () { if ($(inpId).length) { //如果存在了 clearInterval(intervalId); // 则关闭定时器 customTimer(inpId,fn); //执行自身 } }, 100); } } //页面加载完成是执行 $(function () { customTimer("#div_digg", function () { var div_html = "
\ 关注\  | \ 顶部\  | \ 评论\
"; $("#div_digg").append(div_html); //tbCommentBody }); });