示例#1
0
        public Task<bool> Pin(TileInfo tileInfo)
        {
            var result = false;
            if (IsPinned(tileInfo))
            {
                Unpin(tileInfo).Wait();
            }

            var tileData = new StandardTileData
            {
                Title = tileInfo.DisplayName,
                BackgroundImage = tileInfo.LogoUri,
                Count = tileInfo.Count,
                BackTitle = tileInfo.AppName,
                BackBackgroundImage = new Uri("", UriKind.Relative),
                BackContent = tileInfo.DisplayName
            };

            try
            {
                ShellTile.Create(new Uri(string.Format("/View/Shell.xaml?routeId={0}&routeName={1}", tileInfo.TileId, tileInfo.DisplayName), UriKind.Relative), tileData);
                result = true;
            }
            catch (Exception)
            {
                result = false;
            }

            return Task.FromResult<bool>(result);
        }
示例#2
0
        public Task<bool> Unpin(TileInfo tileInfo)
        {
            ShellTile tile = FindTile(tileInfo);
            if (tile != null)
            {
                tile.Delete();
            }

            return Task.FromResult<bool>(true);
        }
示例#3
0
        public SegmentViewModel()
        {
            //http://msdn.microsoft.com/zh-cn/magazine/jj991977.aspx
            //http://www.cnblogs.com/valentineisme/archive/2013/05/20/3088114.html
            if (ViewModelBase.IsInDesignModeStatic)
            {
                InitSegments().ContinueWith(s => GetRealTimeInfo(null));
            }
            else
            {
                Messenger.Default.Register<LineEntity>(this, "Navigate", async s =>
                {
                    SelectedLineEntity = s;
                    Segments = null;
                    await InitSegments();
                });

                //Messenger.Default.Register<Station2Entity>(this, "AutoRetrieveRealTimeInformation", s =>
                //{
                //    if (null == s) return;
                //    GetRealTimeInfo(s);
                //});

                Messenger.Default.Register<string>(this, "PinLine", async s =>
                {
                    if (null != _segments)
                    {
                        // pin to start
                        ISecondaryPinner pinner = new SecondaryPinner();

                        TileInfo tile = new TileInfo();
                        tile.AppName = "无锡公交";
                        tile.Count = 0;
                        tile.Arguments = _selectedLineEntity.RouteId;
                        tile.DisplayName = _selectedLineEntity.RouteName;
                        tile.ShortName = _selectedLineEntity.RouteName;
                        tile.TileId = _selectedLineEntity.RouteId;
                        tile.LogoUri = new Uri("/Assets/Images/Logo210-210.png", UriKind.Relative);
                        tile.WideLogoUri = new Uri("/Assets/Images/WideLogo434-210.png", UriKind.Relative);

                        await pinner.Pin(tile);
                    }
                });
            }
        }
示例#4
0
 private ShellTile FindTile(TileInfo tileInfo)
 {
     return ShellTile.ActiveTiles.FirstOrDefault(tile => tile.NavigationUri.ToString() == string.Format("/View/Shell.xaml?routeId={0}&routeName={1}", tileInfo.TileId, tileInfo.DisplayName));
 }
示例#5
0
 public bool IsPinned(TileInfo tileInfo)
 {
     return FindTile(tileInfo) != null;
 }