酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

Windowsストアアプリで起動オプションに表示サイズを指定して別のアプリを起動させる

過去に「またリジェクト!!面倒くさいプライバシーポリシー問題に1行で対応する方法」で、アプリからブラウザを開く方法を紹介しました。

// ch3cooh.jp をブラウザアプリで開く
var uri = new Uri("http://ch3cooh.jp/");
await Windows.System.Launcher.LaunchUriAsync(uri);

Windows 8.1では、LauncherクラスのLaunchUriAsyncメソッドを使って、ブラウザアプリを起動すると下図のように表示されます。

f:id:ch3cooh393:20140204185401p:plain

起動元のアプリと起動後のアプリ(IE)が半々で表示されるのがわかります。これはデフォルトの表示がViewSizePreference.UseHalfになっているからです。

LaunchUriAsyncメソッドには、起動オプションを指定することで表示サイズを変更することができます。起動オプションはLauncherOptionsクラスにまとめられています。

いくつかプロパティが用意されており、新しいウィンドウ(?)で起動されるアプリの表示サイズを指定するには、DesiredRemainingViewプロパティを使います。

意味
ViewSizePreference.Default アプリケーションではなくWindowsがサイズを設定します。デフォルト値はUseHalfです。
ViewSizePreference.UseHalf ウィンドウが50:50で表示されます
ViewSizePreference.UseMinimum 起動元のウィンドウをアプリマニフェストで指定された最小サイズ(320px or 500px)で表示されます
ViewSizePreference.UseNone 起動元のウィンドウを表示しません。起動されるウィンドウを100%で表示されます
ViewSizePreference.UseLess 起動元のウィンドウを50%未満で表示します。起動されるウィンドウを約60%で表示れせます
ViewSizePreference.UseMore 起動元のウィンドウを50%超で表示します。起動されるウィンドウを約40%で表示されます

ViewSizePreference.UseLess

起動元のアプリのサイズを小さめに表示させます。

var option = new Windows.System.LauncherOptions();
option.DesiredRemainingView = Windows.UI.ViewManagement.ViewSizePreference.UseLess;

// ch3cooh.jp を開く
var uri = new Uri("http://ch3cooh.jp/");
await Windows.System.Launcher.LaunchUriAsync(uri, option);

DesiredRemainingViewプロパティにViewSizePreference.UseLessを指定し、Uriを指定して起動させると下図のようになります。

f:id:ch3cooh393:20140204185411p:plain

ViewSizePreference.UseMore

起動元のアプリのサイズを大きめに表示させます。

var option = new Windows.System.LauncherOptions();
option.DesiredRemainingView = Windows.UI.ViewManagement.ViewSizePreference.UseMore;

// ch3cooh.jp を開く
var uri = new Uri("http://ch3cooh.jp/");
await Windows.System.Launcher.LaunchUriAsync(uri, option);

DesiredRemainingViewプロパティにViewSizePreference.UseMoreを指定し、Uriを指定して起動させると下図のようになります。

f:id:ch3cooh393:20140204185641p:plain

ViewSizePreference.UseNone

起動されるアプリを全画面表示させる起動オプションです。

var option = new Windows.System.LauncherOptions();
option.DesiredRemainingView = Windows.UI.ViewManagement.ViewSizePreference.UseNone;

// ch3cooh.jp をブラウザアプリで開く
var uri = new Uri("http://ch3cooh.jp/");
await Windows.System.Launcher.LaunchUriAsync(uri, option);

DesiredRemainingViewプロパティにViewSizePreference.UseNoneを指定し、Uriを指定して起動させると下図のようになります。

f:id:ch3cooh393:20140204185855p:plain

ViewSizePreference.UseMinimum

アプリマニフェストでスナップ表示にした時のサイズを既定、500ピクセル、Windows 8相当の320ピクセルと選択できます。

呼び出し元のアプリをその設定した最小表示幅にして、起動されるアプリのウィンドウを残りの領域で表示する起動オプションです。

var option = new Windows.System.LauncherOptions();
option.DesiredRemainingView = Windows.UI.ViewManagement.ViewSizePreference.UseMinimum;

// ch3cooh.jp を開く
var uri = new Uri("http://ch3cooh.jp/");
await Windows.System.Launcher.LaunchUriAsync(uri, option);

DesiredRemainingViewプロパティにViewSizePreference.UseMinimumを指定し、Uriを指定して起動させると下図のようになります。

f:id:ch3cooh393:20140204185438p:plain

参考