Windows 8 Developers

Windowsストアアプリ開発とかその他もろもろのブログ。

※参加自由なWindows8開発コミュニティをFacebookグループでやってます。
https://www.facebook.com/groups/win8.developers/

その他、技術情報リンク集を下記にまとめています。
http://windows8-developers.hatenablog.com/entry/2013/02/20/155410


ストアアプリでMassage Dialog表示を6行で表示させる方法

公式のテンプレートや参考書にちゃんとした方法も書いてありますが、「そんなん見るのめんどくさい。とりあえず表示出来れば良い」という人の為に、余計な部分省いて超シンプルなやり方説明します。ついでにアプリをfinish(自分でアプリ終了)させる処理もいれました。手を入れるのは.jsファイルのみでHTMLやCSSは不要です。

 ■default.js

//①ダイアログ定義を任意の場所に書く

var msg = new Windows.UI.Popups.MessageDialog("メッセージテキスト");

msg.commands.append(new Windows.UI.Popups.UICommand("finish", commandInvokedHandler));

msg.commands.append(new Windows.UI.Popups.UICommand("Cancel", commandInvokedHandler));

msg.showAsync();

//②ダイアログのボタンが押された後のハンドラー

function commandInvokedHandler(command) {

        if (command.label == "finish") {

            window.close();}

 }

-------------------------------

実質6行程度、これだけです。

実行するとこんな感じ。

f:id:win8dev:20130310221918p:plain

 

アプリ終了はどうしようかと考えましたがwindow.close読んだらアプリ終了したので、いささか乱暴ですが今回は良しとしました。

実際にダイアログを出すタイミングや選択時の制御をちゃんとやるにはもっといろいろ書かなきゃならないと思いますが、まあ参考になればと思います。

ちなみにMSDNで配布されているサンプルアプリパック(http://code.msdn.microsoft.com/windowsapps/Windows-8-Modern-Style-App-Samples)の中に「Message dialog sample」というサンプルも入っていますので時間がある方はそちらを動かして色々試してみることをおすすめします。