##前段时间写了使用必应壁纸的接口,只是通过本地的json文本演示了壁纸展示,没有涉及网络获取,这回这篇文章修改了数据获取部分,换成了在线获取,项目的结构和上次的没太大的区别,所以大家可以先看看上篇文章,然后再看这篇文章。
##如下图,增加了一个获取接口类。

##这个通过HttpClient自带的getstring 方法获取了数据,然后我也把它反序列化了成了对象返回了。
##下面是调用代码

##注释部分是之前的读取本地json的部分。
##下面是代码 方便复制

using BingWallpapers.Models;
using BingWallpapers.Services;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.Storage;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
using Windows.Web.Http;// https://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x804 上介绍了“空白页”项模板namespace BingWallpapers
{/// <summary>/// 可用于自身或导航至 Frame 内部的空白页。/// </summary>public sealed partial class MainPage : Page{public MainPage(){this.InitializeComponent();}private async void Page_Loaded(object sender, RoutedEventArgs e){//此集合为GridView的sourceObservableCollection<WallpapersDetail> picModels = new ObservableCollection<WallpapersDetail>();//json文件的url//Uri uri = new Uri("ms-appx:///Assets/file.json");//var file = await StorageFile.GetFileFromApplicationUriAsync(uri);读取的json文本//string text = await Windows.Storage.FileIO.ReadTextAsync(file);然后反序列化成类//WallpapersData wallPaperModel = Newtonsoft.Json.JsonConvert.DeserializeObject<WallpapersData>(text);WallpaperService wallpaperService = new WallpaperService();WallpapersData wallPaperModel = await wallpaperService.GetWallparper(1, 8);//通过重新组装成集合给GridViewforeach (var item in wallPaperModel.images){picModels.Add(new WallpapersDetail(){Title = item.copyright,Source = "https://www.bing.com" + item.url});}GV.ItemsSource = picModels;}/// <summary>/// 要保存的图片对象/// </summary>private WallpapersDetail wallpapers;private void MenuFlyout_Opening(object sender, object e){var menuFlyout = sender as MenuFlyout;var gridViewItem = menuFlyout.Target as GridViewItem;wallpapers = gridViewItem.Content as WallpapersDetail;}private async void Save_Click(object sender, RoutedEventArgs e){Uri uri2 = new Uri(wallpapers.Source);var httpClientPicData = new HttpClient();var resBuffer = await httpClientPicData.GetBufferAsync(uri2);StorageFolder destinationFolder = await KnownFolders.PicturesLibrary.CreateFolderAsync("BingWallpapers", CreationCollisionOption.OpenIfExists);var destinationFile = await destinationFolder.CreateFileAsync("BingWallparpers"+DateTime.Now.Ticks + ".jpg", CreationCollisionOption.ReplaceExisting);await FileIO.WriteBufferAsync(destinationFile, resBuffer);}}
}


##xaml代码
##增加了右键菜单,一个右击事件,一个保存点击事件,如下图。
##在右击菜单里我获取了右击的Gridview的item获取了图片的Url,然后将对象保存了wallpaper对象里,
##点击保存事件时,其实调用了一次网络请求,因为知道是图片,所以直接使用获取buffer。最后将buffer写入了创建的图片里。

<Pagex:Class="BingWallpapers.MainPage"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:local="using:BingWallpapers"xmlns:data="using:BingWallpapers.Models"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"mc:Ignorable="d"Loaded="Page_Loaded"Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"><Grid><GridView x:Name="GV"><GridView.ItemTemplate><DataTemplate x:DataType="data:WallpapersDetail"><StackPanel><TextBlock Text="{x:Bind Title}"/><Image  Source="{x:Bind Source}"/></StackPanel></DataTemplate></GridView.ItemTemplate><GridView.ContextFlyout><MenuFlyout Opening="MenuFlyout_Opening"><MenuFlyoutItem Text="保存"x:Name="Save"Click="Save_Click"/></MenuFlyout></GridView.ContextFlyout></GridView></Grid>
</Page>

##在使用图片库时记得在下图里勾选图片库。

##下面是运行之后的效果因为用的是1809的sdk貌似自带了半透明的效果

#代码还是上篇文章的,不过是在online分支,之前在csdn写的,但是那个编辑器不太好用搞了一半,就换简书的了。
虽然代码简单还是贴上来吧https://github.com/zgj1995/BingWallpapers

UWP使用必应每日壁纸(二)相关推荐

  1. java一键换壁纸_Java 版下载必应每日壁纸并自动设置 Windows 系统桌面(改编自 C# 版)...

    哈哈,好久没有写博客了,已经荒废了,前几天在某 IT 网站看到一个用 C# 写的设置必应每日壁纸为 Windows 系统桌面,看了看源码是通过调用 User32.dll 进行设置的,刚刚最近做的项目更 ...

  2. python批量下载必应每日壁纸

    文章目录 python批量下载必应每日壁纸 一.图片来源选择 二.python实现 python批量下载必应每日壁纸 必应搜索的每日背景壁纸都是高质量的图片,下载来当桌面壁纸再好不过了,微软官方也推出 ...

  3. Bing Test -必应每日壁纸自动换

    今天向大家推荐一个桌面美化类的工具,没错就是自动更换壁纸,而且是精美的必应每日壁纸哦!绿色小巧,开机自启动,设置后每日自动更新你的桌面~ 软件名称:Bing Test 链接: http://pan.b ...

  4. 必应每日壁纸API HTML 使用必应每日API为背景 css 背景图片 加模糊 遮罩

    必应每日壁纸API 必应每日壁纸接口API https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh ...

  5. 必应每日壁纸下载|必应每日壁纸V3.3.1免费下载

    每天自动更新一个高清壁纸.换完壁纸后,软件可以自动退出,不占用你的内存,真的是相当良心啊. 必应每日壁纸下载链接 必应每日壁纸插件是一个简便实用的chrome必应壁纸插件,是由微软官方推出的一款壁纸更 ...

  6. Python脚本 - 下载必应每日壁纸

    Python脚本 - 下载必应每日壁纸 必应每日壁纸可以通过链接 https://area.sinaapp.com/bingImg/ 访问,本文利用python脚本进行下载. 所需条件 操作系统:Wi ...

  7. 通过快捷方式快速更换桌面壁纸(必应每日壁纸)

    通过快捷方式快速更换桌面壁纸(必应每日壁纸) 01 前言 02 正文 03 后记 01 前言 桌面壁纸,大家都懂的,换的不是壁纸,是寂寞 心情.市面上各种桌面美化软件就不提了,这里介绍一种高端非主流玩 ...

  8. php 必应每日壁纸,GitHub - lylares/todaybing: 必应壁纸七牛云图片站

    PHP 实现必应每日壁纸+七牛云图片站 本程序实现bing每日图片保存在服务器本地,然后自动上传到七牛云空间,在前端界面展现的图片皆从七牛云获取. 更新 2018.04.04 更新: 1.接口以及部分 ...

  9. 必应每日壁纸批量下载

    背景 桌面壁纸好久没有更新,感到有些审美疲劳.必应每日推荐高质量壁纸,有好心人已经做成了专门的必应壁纸站,更新桌面壁纸,顺便练手爬虫小程序. 分析 第一步提取出全部图片的链接,单个页面正则提取后,加个 ...

最新文章

  1. 读博前三年0文章,后期发力一口气11篇一作!这个“90后”现任职985博导
  2. 转:优化js脚本设计,防止浏览器假死
  3. 第二次实验报告(漏)
  4. 七种寻址方式(直接寻址方式)
  5. 新版Ubuntu安装日文输入法
  6. E - 娜娜梦游仙境系列——莫名其妙的插曲
  7. thinkphp5.0.6 连接SQLServer2008r2 配置总结
  8. 如何在一台window系统上演示Erlang分布式程序
  9. PentaLogix ViewMate Pro v11.16.16破解版
  10. DSI3协议 CRM模式通信讲解
  11. javac错误: 找不到符号或程序包XXX不存在
  12. 石油公路工程都在用的光纤测试仪是什么型号
  13. java基于springboot+vue的大学生宿舍公寓管理系统 element
  14. 【老生谈算法】matlab实现图像去雾算法——图像去雾
  15. python 全栈开发之路 day1
  16. 网络即时战略游戏软件开发 结构体系分析
  17. 区块链技术用于商品溯源
  18. Verilog软硬件思维切换
  19. 围剿Viking、专杀工具的较量——继初遇Worm.Viking.dy
  20. 拉格朗日插值在MATLAB的实现

热门文章

  1. 2018-2019第一学期Java助教心得
  2. MCE公司:RIP1 激酶抑制剂可应用于自身免疫性脑脊髓炎的治疗
  3. Lexar雷克沙 nCARD存储卡全网发布,可用于华为手机内存扩容
  4. Easycwmp_源码分析
  5. Coding and Paper Letter(三十)
  6. DNS是如何进行域名解析的?
  7. java小组的队名,霸气小组名称口号大全
  8. 2021!四川省科学技术厅开展瞪羚企业申报条件材料
  9. H5页面微信授权登录——前端部分
  10. excel数据修约(四舍六入五成双)