Win10系列:UWP界面布局进阶6
在Windows 10的"个性化设置"中,用户可以更改计算机在锁屏状态下的背景图片,除此之外,也可以通过Windows应用商店应用程序将喜欢的图片设置为锁屏背景,下面通过一个示例来介绍如何实现这一功能,在本示例中将为页面添加"选择图片"和"设置锁屏背景"两个按钮,通过单击"选择图片"按钮进入图片选择页面,用户可以从本地文件夹中选择一张图片,单击"设置锁屏背景"按钮将选择的图片设置为锁屏背景。
启动Visual Studio,新建一个Windows应用商店的空白应用程序项目,将其命名为SetLockBackground。打开MainPage.xaml文件,在Grid元素中添加两个Button控件,分别设置按钮显示的文本为"选择图片"和"设置锁屏背景",同时添加一个TextBlock文本块用来显示提示信息。对界面进行布局后的代码如下所示:
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<Button x:Name="SelectButton" Content="选择图片" HorizontalAlignment="Left" Margin="773,492,0,0" VerticalAlignment="Top" Height="59" Width="160" FontSize="30" Click="SelectButton_Click"/>
<Button x:Name="SetButton" Content="设置锁屏背景" HorizontalAlignment="Left" Margin="970,492,0,0" VerticalAlignment="Top" Height="59" Width="225" FontSize="30" Click="SetButton_Click"/>
<TextBlock x:Name="Output" HorizontalAlignment="Left" Margin="773,422,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Height="46" Width="564" FontSize="40" Text="请选择图片"/>
</Grid>
在设计器中的界面效果如图5-14所示。

图5-14设置锁屏背景界面效果
打开MainPage.xaml.cs文件,引入相应的命名空间,用于简化代码的编写,具体代码如下所示:
using Windows.Storage;
using Windows.Storage.Pickers;
using Windows.System.UserProfile;
在MainPage类中定义StorageFile类型的全局变量storageFile,用来存放用户选择的图片文件,代码如下所示:
StorageFile storageFile= null;
接下来定义"选择图片"按钮的单击事件处理方法SelectButton_Click(),单击此按钮将打开文件选择器以便选择将要被设置成锁屏背景的图片,具体代码如下所示:
private async void SelectButton_Click(object sender, RoutedEventArgs e)
{
//定义文件选取器对象
FileOpenPicker openPicker = new FileOpenPicker();
//设置文件显示方式为缩略图
openPicker.ViewMode = PickerViewMode.Thumbnail;
//设置文件选取器的起始位置为图片库
openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
//设置在文件选取器中显示的文件类型
openPicker.FileTypeFilter.Add(".jpg");
openPicker.FileTypeFilter.Add(".jpeg");
openPicker.FileTypeFilter.Add(".png");
storageFile = await openPicker.PickSingleFileAsync();
if (storageFile != null)
{
Output.Text = "您已选择名为"+storageFile.Name+"的文件";
}
else
{
Output.Text = "没有选择图片";
}
}
在上面的方法中,首先创建了用于选择文件的FileOpenPicker类型的对象openPicker,接下来设置openPicker对象的ViewMode属性值为PickerViewMode枚举类型的Thumbnail值,表示将文件选择器的视图模式设置为缩略图,通过为SuggestedStartLocation属性赋值来设置文件选取器打开时的起始位置为当前计算机中的图片库。接着使用openPicker对象的FileTypeFilter属性指定用户可以在文件选取器中看到的文件类型。最后调用openPicker对象的PickSingleFileAsync方法来异步选择单个文件,将返回的StorageFile类型的变量保存在之前定义好的全局变量storageFile中,同时在前台界面中显示选择文件的名称。
下面定义"设置锁屏背景"按钮的单击事件处理方法SetButton_Click(),方法中通过调用LockScreen类的SetImageFileAsync方法异步将所选图片设置为锁屏背景,并在前台界面显示设置成功的提示信息,具体代码如下所示:
private async void SetButton_Click(object sender, RoutedEventArgs e)
{
await LockScreen.SetImageFileAsync(storageFile);
Output.Text = string.Format("已设置图片{0}为锁屏背景", storageFile.Name);
}
运行程序,单击"选择图片"按钮,进入文件选取页面,在文件列表当中选择需要的图片后单击"打开"按钮。返回应用界面后单击"设置锁屏背景"按钮,接着同时按下"Windows+L"快捷键使屏幕处于锁定状态,可以看到此时的锁屏背景已经变成刚才选取的图片,到这里锁屏背景设置功能就介绍完了。
本节中为读者介绍了几种Windows 8界面系统的新特性,以及如何将这些特性运用到Windows应用商店应用程序的开发当中。通过对本节内容的学习,读者可以对全新的Windows 8界面系统有比较直观的认识,在下面的章节中,将系统地介绍Windows应用商店应用程序界面的布局元素及布局方式。
Win10系列:UWP界面布局进阶6的更多相关文章
- Win10系列:UWP界面布局进阶3
与以往的Windows操作系统不同,Windows 10操作系统在正式版当中取消了任务栏中的"开始"按钮,将大部分的应用程序图标放置在开始屏中,同时将系统设置等常用功能整合到了Ch ...
- Win10系列:UWP界面布局进阶1
全新的Windows 10 操作系统支持多种视图模式,用户可以根据需要选择不同的视图模式显示应用.当用户同时浏览或操作多个应用程序时,可以将应用视图调整为辅屏视图或填充视图,这样在一个屏幕中可以同时对 ...
- Win10系列:UWP界面布局进阶9
Grid Grid元素用来定义一个由行和列构成的网格,这是一个功能强大的布局容器,当新建一个页面时会默认选用Grid作为顶级布局元素,下面将通过三个示例来介绍Grid的使用方法. (1)定义Grid的 ...
- Win10系列:UWP界面布局进阶7
Canvas Canvas元素用于定义一个区域,可以向这个区域中添加不同的XAML界面元素.Canvas会对其内部的元素采用绝对布局方式进行布局,下面通过三个示例来介绍Canvas的使用方法. (1) ...
- Win10系列:UWP界面布局进阶5
提示框 在Windows应用商店应用程序中可以使用提示框来向用户显示提示信息,例如可以通过对话框来询问用户当前需要执行的操作,还可以通过弹出窗口来显示需要注意的信息.本节将向读者介绍如何在Window ...
- Win10系列:UWP界面布局进阶4
在开发Windows应用商店应用程序时,可以为页面中的界面元素添加快捷菜单,并设置与其相关的菜单项,用户通过选择快捷菜单中的菜单项来执行与被选择对象相关的操作.下面通过一个示例来介绍如何为页面中的一张 ...
- Win10系列:UWP界面布局进阶2
为了让用户可以在流畅浏览应用界面的同时提供与应用相关的功能按钮,Windows 10系统在用户界面当中引入了侧边栏,侧边栏可以在用户有需要对应用或者系统进行操作时显示,在没有需要操作的时候自动隐藏,并 ...
- Win10系列:UWP界面布局进阶8
StackPanel StackPanel能够以水平或垂直的方式整齐地排列位于其内部的元素.通过设置StackPanel的Orientation属性可以定义内部元素的排列方式,当将Orientatio ...
- Win10系列:UWP界面布局基础1
随着技术的不断发展,使用者对应用程序的界面体验提出了更高的要求,为了应对越来越复杂的界面设计需求和有效的简化界面开发过程,微软公司在其应用程序的开发技术当中引入一套新的应用程序界面描述语言,这就是XA ...
随机推荐
- python web.py操作mysql数据库,实现对数据库的增删改查操作
使用web.py框架,实现对mysql数据库的增删改查操作: 该示例代码中连接的是本地数据库testdb,user表,表结构比较简单,只有两个字段:mobile和passwd,类型均为字符型 实际应用 ...
- STL_string.ZC
1.转成 小写/大写 #include <algorithm>using namespace std; // 转成小写transform(_strAttrNameG.begin(), _s ...
- leecode第九题(回文数)
class Solution { public: bool isPalindrome(int x) { ) return false; ;//这里使用long,也不判断溢出了,反正翻转不等就不是回文 ...
- Asp.net core 学习笔记 ( Configuration 配置 )
参考 : https://cnblogs.com/nianming/p/7083964.html 配置写在 appsettings.json 里头 比如 { "object": { ...
- 【转载】LINUX下安装wget命令(SFTP实现法)
如何安装wget命令. 方法一:通过yum 命令行为:yum install wget 完成.此操作很简单,但是我安装的linux是centos的最小版本,运行上述命令时会出现无法连接到源网站(大概是 ...
- requests库使用:通过cookie跳过验证码登录,并用Session跨请求保持cookie
拿我平时测试的一个系统为例,从UI层面来说必须先登录才可以进行后续操作,但是我在测试接口文档提供的接口时,发现并不需要登录,每个接口只要传参就可以正常返回.原因是我们这边专门弄了一个接口包来统一管理常 ...
- RESTful Web Services中API的设计原则(转)
当下前后端分离的设计已经是web app开发的标配,但是如何设计一个强壮,扩展性好,又规范的API呢 参考以下link,可以得到需要有益的启示.同时个人推荐一本书<web API的设计和开发&g ...
- learn python the hard way 习题1~5总结
习题1 print 语句print('Yay! Printing.')print('I "said" do not touch this') 习题2:注释和 # 号 #(octot ...
- ado.net介绍
System.Data:DataTable,DataSet,DataRow,DataColumn,DataRelation,Constraint System.Data.Common(各种数据访问类的 ...
- 雷林鹏分享:jQuery EasyUI 表单 - 过滤下拉数据网格
jQuery EasyUI 表单 - 过滤下拉数据网格 下拉数据网格(Combogrid)组件和下拉框(Combobox)组件的共同点是,除了都具有下拉面板以外,它们都是基于数据网格(Datagrid ...