2012/12/01

[win8]ボタンを押すとメッセージを表示するアプリ

Windowsストアアプリを、とりあえず作ってみよう。

VS Express 2012 for Windows8を起動して、プロジェクトを新規作成。
いくつか基本形を選択できるが、ここではC#の単一画面を選択した。

とりあえずビルドできるものが自動生成されるので、三角形の実行ボタンを押す。
・・・画面が切り替わって、起動したっぽい。
真っ黒画面で、何が何だかよくわからない・・・。

デスクトップとアプリを行ったり来たりするのは、どうにも面倒だ。
デバッグも大変だなあ、と思って画面を見ていると、さっき押した三角形のボタンに「ローカルコンピュータ」と書いてある。
プルダウンすると項目が出てきた。
「シミュレーター」「ローカルコンピュータ」「リモートコンピュータ」が選択できる。
もしかして、このシミュレーターというのは・・・。

「シミュレーター」を選択してからクリックすると、ちっこい画面が出てきた。

image

マウスを右下に持っていくと、ちゃんと右側になんか出てくる(名前がわからん)。
上から3番目の「スタート」をクリックすると、アプリ一覧が出てきて、その一番最後にデバッグさせようとしているアプリも載っていた。

image

なるほど、こうすればデスクトップ画面でストアアプリをデバッグできるのか。


真っ黒だと面白くないので、ボタンを押してメッセージボックスが表示されるアプリにしておこう。

ソリューションエクスプローラーから「MainPage.xaml」をダブルクリックすると、デザイン画面が開く。
これが・・・かなり待たされる。
うちのPCだと、1分くらい待ったような気がする。

まず、背景色を変更しよう。
真っ黒いところをクリックすると、右側にプロパティが出てくる。ここら辺は、前のVSと同じだ。
「ブラシ」の「Background」から、適当に色を変更させる。
変更は、デザイン画面に反映される。

ボタンを置くのも、前と同じ要領で、ツールボックスからドラッグする。
これも色を変えたかったので、「ブラシ」の「Background」で変更。

デフォルトだと「Button」となっているので、これは「共通」の「Content」を変更。
気付いたのだが、このテキストボックスではATOKが有効にならない。。。
MSIMEだとわからないが、とにかくATOKは起動しなかったので、日本語が打てない。
別のテキストエディタを開いて日本語を打ち、ペーストすることはできた。
まあ、簡単なのは、デザイン画面の下に出てくるXAMLエディタの「Content」を直接変更することだろう。

ボタンをダブルクリックすると、自動的にクリックされたときのメソッドが追加された。
たぶん、前と同じようにプロパティ画面の雷アイコンをクリックして、メソッドを追加する方法でもいけるだろう。

 

さて、困ったのはメッセージボックス。
MessageBox、と打っても、候補が出てこない。。。
ネットで調べると、MessageDialogなるものを使うらしい。
打ち込んでみたが、赤い波線が出てきて、そんなのないよ、といわれてしまう。
これはusingが足りないので、右クリック→競合の解決、からusingを追加すればよい。

使い方は、ネットのものをまねした。

   1: private async void Button_Click_1(object sender, RoutedEventArgs e)
   2: {
   3:     MessageDialog dlg = new MessageDialog("よろしく", "Hello");
   4:     await dlg.ShowAsync();
   5: }

ポイントは、ShowAsync()には「await」がいるのと、メソッドに「async」がいるということ。
awaitはVSのエラーメッセージでわかったのだが、asyncは付ける場所が最初わからんかった。
メソッドにつけてください、というのは、このメソッドにつけてね、という意味だったのか。

 

実行してボタンを押すと、こんなのになる。

image

ブレークポイントをクリックメソッドに置いておくと、ちゃんとそこで止まるので、思った通りのデバッグができるようだ。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。