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 ...
随机推荐
- Java——文件及目录File操作
API file.listFiles(); //列出目录下所有文件及子目录fileList[i].isFile() //判断是否为文件 fileList[i].isDirectory() //判断是否 ...
- Vue 中 export及export default的区别
相信很多人都在vue使用过export.export default.import,然而它们到底有什么区别呢? 在ES6中,export与export default均可用于导出常量.函数.文件.模块 ...
- Python 百分比计算
遇到计算百分比的情况,查了一下,有两种方式 具体实现方式见下面代码 # 方式1 格式化为float ,然后 处理成%格式, 需要对分子/分母 * 100如下, percentList.append(' ...
- flex属性的学习
1.需要记住的属性和值. ------------------------------------------------------------- 方向横和纵 flex-direction: row ...
- Python生成pyd文件
Python的脚本文件是开源的,量化策略的安全性没有保障.因此需要保护源码.那么要对Python代码进行混淆.加密保护. 混淆代码,我准备使用pyminifier.而加密处理,就比较麻烦. Pytho ...
- 用图来教你怎样用Photoshop蓝底转换红底
教你怎样用红底转换成蓝底.PS其实学了这个,你就可以在白底红底蓝底之间不同转变了. 第一步 第二步 第三步 第四步 最后给你们看看对比效果图
- 输出图片格式BARTENDER
try { BarTender.Application btApp = new BarTender.Application(); BarTe ...
- 自定义Exception异常
自定义异常构建 首先写一个自定义异常,继承Exception,代码如下 public class NoMappingParamString extends Exception { /*无参构造函数*/ ...
- 02 flask 请求钩子、异常捕获、上下文、Flask-Script 扩展、jinja2 模板引擎、csrf防范
一 请求勾子 在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如: 在请求开始时,建立数据库连接: 在请求开始时,根据需求进行权限校验: 在请求结束时,指定数据的交互格式: 为了让每个 ...
- windows上使用composer安装yii2
切换成中国镜像 composer config -g repo.packagist composer https://packagist.laravel-china.org 在电脑的dos命令中写入: ...