• 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应用商店应用程序界面的布局元素及布局方式。

  • 相关阅读:
    sql语句的优化分析
    log4net.config
    redis lua 脚本实例
    Lua 脚本
    ServiceStack.Redis之IRedisClient<第三篇>
    有关Redis的Add和Set方法的比较
    如何在自己网站加上视频直播功能(搭建视频直播网站)
    带进度条的上传插件
    YII获取当前URL
    MYSQL常用命令
  • 原文地址:https://www.cnblogs.com/finehappy/p/6645820.html
走看看 - 开发者的网上家园