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 ...
随机推荐
- MySQL中的排序(ORDER BY)
当使用 SELECT FROM 时,如果不排 序,数据一般将以它在底层表中出现的顺序显示.这可以是数据最初添加到表中的顺序.但是,如果数据后来进行过更新或删除,则此顺 序将会受到MySQL重用回收存储 ...
- 贪心 —— 今年暑假不AC
贪心基本题, 有助于理解贪心算法的思想 #include <cstdio> #include <algorithm> using namespace std; struct P ...
- 力扣(LeetCode)461. 汉明距离
两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目. 给出两个整数 x 和 y,计算它们之间的汉明距离. 注意: 0 ≤ x, y < 231. 示例: 输入: x = 1, y ...
- rpm命令参数(转载)
rpm 执行安装包 二进制包(Binary)以及源代码包(Source)两种.二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译.安装.源代码包经常以src.rpm作为后缀名. 还不清楚具 ...
- 算法笔记--斜率优化dp
斜率优化是单调队列优化的推广 用单调队列维护递增的斜率 参考:https://www.cnblogs.com/ka200812/archive/2012/08/03/2621345.html 以例1举 ...
- h5屏幕旋转的时间和样式的设置
好几天没更新博客了,今天写写小感悟和一个小东西吧! 随着前端的前端的越来越火,对前端的要求也越来越高,从之前的切图到开发网站再到现在移动端开发,微信开发,手机app混合开发,不得不说现在前端在开发行业 ...
- photoshop怎么旋转图片
Adobe Photoshop 是一款为人熟知的功能强大的图像处理软件.在这里简单介绍一下如何在photoshop里进行图像的旋转. 工具/原料 Adobe Photoshop 软件,图像一张 方 ...
- MATLAB程序控制结构
- Axure 第一次交互 实现跳转页面
- SQL语句内做除法得出百分比
保留两位小数点 SELECT ROUND(CAST(field1 AS DOUBLE)/field2, 2) * 100 FROM TB; 不保留 SELECT CAST(field1 AS FLOA ...