2012年6月10日日曜日

ロック画面の壁紙取得/設定

Windows8からロック画面が表示されるようになりました。
今回はそのロック画面の壁紙を取得/設定する方法を解説します。

概要

 ロック画面の壁紙取得/設定は、Windows.System.UserProfile名前空間のLockScreenクラスを使う事で可能です。壁紙サイズはMetroスタイルアプリの解像度である1366×768pxとなります。

壁紙の取得方法

ロック画面
アプリ画面
ロック画面に設定中の壁紙画像を取得する事が出来ます。
using Windows.System.UserProfile;

private void BtnGetLockScreen_Click(object sender, RoutedEventArgs e) {
    using (IRandomAccessStream stream = LockScreen.GetImageStream()) {
        BitmapImage bmpImg = new BitmapImage();
        bmpImg.SetSource(stream);
        img.Source = bmpImg;    // Imageコントロールに設定
    }
}
LockScreenクラスのGetImageStreamメソッドの返値としてロック画面の壁紙画像を取得する事が出来ます。

壁紙の設定方法

アプリ画面
ロック画面
ロック画面の壁紙に画像を設定する事が出来ます。
using Windows.ApplicationModel;
using Windows.Storage;
using Windows.System.UserProfile;

async private void BtnSetLockScreen_Click(object sender, RoutedEventArgs e) {
    StorageFile file = await Package.Current.InstalledLocation.GetFileAsync(@"Assets\Toka.png");  // プロジェクト内の画像ファイルを読み込む
    await LockScreen.SetImageFileAsync(file);  // ロック画面の壁紙設定
}

LockScreenクラスのSetImageFileAsyncメソッド、もしくはSetImageStreamAsyncメソッドを使用する事でロック画面の壁紙設定を行う事が可能です。


小ネタ

以降、いくつか小ネタを...

透過壁紙

ロック画面
少し面白い事に透過PNGを設定すると、背景が透けてパスワード入力画面が見えるようになります。ユーザが混乱するため透過PNGはあまり設定させない方が良いのかもしれませんね。

デスクトップの壁紙取得/設定

WinRT APIには無いです。他の方法は調査していません。

0 件のコメント:

コメントを投稿