[UWP] スプラッシュスクリーンを表示する

今回はスプラッシュスクリーンの表示方法について見ていきます。

スプラッシュスクリーンはPackage.appmanifestファイルで設定をします。Package.appmanifestを開き、「ビジュアル資産」タブを選択します。

続いて、左側の一覧で「スプラッシュスクリーン」を選択し、右側でスプラッシュスクリーンに表示する画像を選択します。

背景色の欄では、スプラッシュスクリーン全体の背景色を設定します。

以上の設定をしておくだけで、自動でスプラッシュスクリーンが表示されます。

スプラッシュスクリーンの設定

 

[UWP][クリップボード] クリップボードを使用する

UWPでクリップボードを使用するには、はじめにDataPackageクラスのインスタンスを作成してデータをセットします。

続いてデータを作成したDataPackageのインスタンスを、ClipBbardのSetContentメソッドを使用してセットします。

コード例は以下の通りです。

var dp = new Windows.ApplicationModel.DataTransfer.DataPackage();
dp.SetText("UWPアプリ");
Windows.ApplicationModel.DataTransfer.Clipboard.SetContent(dp);

クリップボードからのデータ取得する場合は ClipboardのGetContentメソッドを使用します。

クリップボードには様々なデータが格納されるため、取得するデータの種類を指定する必要があります。種類はWindows.ApplicationModel.DataTransfer.StandardDataFormatsが持つ値で指定します。

ApplicationLink
Bitmap
Html
Rtf
StorageItems
Text
Uri
WebLink

以下に種類がTextのデータを取得する例を示します。

var dpv = Windows.ApplicationModel.DataTransfer.Clipboard.GetContent();
if (dpv.Contains(Windows.ApplicationModel.DataTransfer.StandardDataFormats.Text))
{
    textBoxDest.Text = await dpv.GetTextAsync();
}

[UWP][ドラッグ&ドロップ] ドラッグ&ドロップを実装する

今回はUWPアプリでのドラッグ&ドロップについて見ていきます。

MainPage.xamlには既定でGridが配置されています。

このGridでドラッグ&ドロップをできるようにするには、はじめにAllowDropプロパティをTrueにしておきます。

続いて、DragOverのイベントを作成します。このイベントは、アプリケーション内にドラッグしようとしているときに発生します。

このイベントのe.AcceptedOperationにDataPackageOperation列挙体の値を設定することで アイコンの見た目を変更することができます。

設定可能なアイコンは以下表の通りです。

説明
Copy ドラッグしようとしているアイコンの上に「コピー」の文字が表示される
Move ドラッグしようとしているアイコンの上に「移動」の文字が表示される
Link ドラッグしようとしているアイコンの上に「リンク」の文字表示される
None ドラッグしようとしているアイコンの上に「禁止マーク」が表示される

コピーアイコンにする場合は以下のようにコードを記述します。

private void Grid_DragOver(object sender, DragEventArgs e)
{
    e.AcceptedOperation = Windows.ApplicationModel.DataTransfer.DataPackageOperation.Link;
}

続いてドロップされた場合の処理ですが、個の場合はDropイベントが発生します。

引数のe.DataView.Containsメソッドで、ドロップされたファイルの種類を調べます。

ドロップされたファイルの種類はWindows.ApplicationModel.DataTransfer.StandardDataFormatsが持つ値で指定します。

指定可能な値を以下の表に示します。

ApplicationLink
Bitmap
Html
Rtf
StorageItems
Text
Uri
WebLink

ファイルがドロップされたことを調べるには以下のように記述します。

private async void Grid_Drop(object sender, DragEventArgs e)
{
    if (e.DataView.Contains(Windows.ApplicationModel.DataTransfer.StandardDataFormats.StorageItems))
    {
        // ファイルのパス一覧を取得する
        var items = await e.DataView.GetStorageItemsAsync();
        var filePaths = items.Select(x => x.Path).ToArray();
    }
}