public async void Init() { // 确保至少能正确执行一次,能正常设置背景。 while (true) { try { ImageArchiveCollection imageArchiveCollection = await _bingWallpaperService.GetWallpaperInformationsAsync(0, 1, Settings.Area); if (imageArchiveCollection != null) { ImageArchive imageArchive = imageArchiveCollection.Images.FirstOrDefault(); if (imageArchive != null) { // 设置背景。 BackgroundUrl = imageArchive.GetUrlWithSize(WallpaperSize._1920x1080); // 立即更新主磁贴。 TileHelper.UpdateTile(imageArchive); } } break; } catch (HttpRequestException ex) { if (_hadNotifyNetworkError == false) { _hadNotifyNetworkError = true; SideToastHelper.Error(ResourcesHelper.NetworkError); } } } }
public async Task <ImageArchiveCollection> GetWallpaperInformationsAsync(int daysAgo, int count, string area) { string url = string.Format(CultureInfo.InvariantCulture, LINKTEMPLATE, daysAgo, count, area); Uri uri = new Uri(url, UriKind.Absolute); string json; using (HttpClient client = new HttpClient()) { client.DefaultRequestHeaders.AcceptLanguage.ParseAdd(area); json = await client.GetStringAsync(uri); } ImageArchiveCollection imageArchiveCollection = JsonConvert.DeserializeObject <ImageArchiveCollection>(json); return(imageArchiveCollection); }
public async Task <ImageArchiveCollection> GetWallpaperInformationsAsync(int daysAgo, int count, string area) { if (string.Equals(area, "zh-CN", StringComparison.OrdinalIgnoreCase)) { return(await new BingWallpaperJsonService().GetWallpaperInformationsAsync(daysAgo, count, area)); } else { string url = string.Format(CultureInfo.InvariantCulture, LINKTEMPLATE, daysAgo, count, area); Uri uri = new Uri(url, UriKind.Absolute); string json; using (HttpClient client = new HttpClient()) { client.DefaultRequestHeaders.AcceptLanguage.ParseAdd(area); json = await client.GetStringAsync(uri); } ImageArchiveCollection imageArchiveCollection = JsonConvert.DeserializeObject <ImageArchiveCollection>(json); return(imageArchiveCollection); } }
private async void UpdateTile() { try { IBingWallpaperService service = new BingWallpaperJsonService(); ImageArchiveCollection imageArchiveCollection = await service.GetWallpaperInformationsAsync(0, 1, Settings.Area); ImageArchive image = imageArchiveCollection.Images.FirstOrDefault(); string tileText = image.GetTitle(); // ReSharper disable InconsistentNaming string _150x150url = image.GetUrlWithSize(WallpaperSize._150x150); string _310x150url = image.GetUrlWithSize(WallpaperSize._310x150); // ReSharper restore InconsistentNaming TileNotification tile = new TileNotification(TileTemplateHelper.CreateTileTemplate(tileText, _150x150url, _310x150url)); TileUpdateManager.CreateTileUpdaterForApplication().Update(tile); } finally { _deferral.Complete(); } }
public async static Task LoadMore(int count) { if (_loading) { return; } ImageArchiveCollection imageArchiveCollection = await BingWallpaperService.GetWallpaperInformationsAsync(LoadedImageArchives.Count, count, CultureInfo.CurrentCulture.Name); if (imageArchiveCollection != null) { ImageArchive[] imageArchives = imageArchiveCollection.Images; foreach (var imageArchive in imageArchives) { if (LoadedImageArchives.Any(temp => temp.UrlBase == imageArchive.UrlBase) == false) { LoadedImageArchives.Add(imageArchive); } } } _loading = false; }