大きく変わるWindowsストア・アプリ開発 〜 そのほかの変更点:特集:次期Windows 8.1&Visual Studio 2013 Preview概説(後編)(2/4 ページ)
Windows 8.1で変更/追加されたWindows Runtime APIや、XAMLコントロールの改良点/新機能、Visual Studio 2013のデバッグ関連新機能などを紹介する。
XAMLコントロールの変貌
Win 8.1ストア・アプリのXAMLコントロールには、WebViewコントロールの劇的な改良や、Flyoutコントロールや日付ピッカー・コントロールといった待ち望まれたコントロールの追加がある。JavaScript用のコントロールにも追加/改良は多くあるが、本稿では割愛させていただく。
WebViewコントロールの改良
HTMLページを簡単に表示できるWebViewコントロールは便利なものだが、Win 8ストア・アプリのものには「浮いてしまう」という大きな問題があった。ウィンドウ・ハンドルを持っているため、常に最前面に表示されてしまうのだ。そのため、WebViewコントロールに被せるようにアプリ・バーを出しても、アプリ・バーを「突き抜けて」、WebViewコントロールが表示されてしまうし、ListViewコントロールに入れてスクロールさせるとListViewコントロールの外にはみ出してしまっていた。
Win 8.1ストア・アプリ用のWebViewコントロールは、この点が改良されて、もはや「浮いていない」。それだけでなく、Opacityプロパティの設定が有効になって半透明にもできるようになった。
例として、WebViewコントロールをListBoxコントロールに入れて、Opacityプロパティも設定してみよう(次のコード)。
<ListBox BorderThickness="5" BorderBrush="#00a2e8" ……省略…… >
<ListBoxItem Background="Red">
<WebView Width="380" Height="180"
Source="http://www.atmarkit.co.jp/fdotnet/chushin/readyforwin8app_01/readyforwin8app_01_01.html"
Opacity="0.5" />
</ListBoxItem>
<ListBoxItem Background="Green">
<WebView Width="380" Height="180"
Source="http://www.atmarkit.co.jp/fdotnet/chushin/readyforwin8app_02/readyforwin8app_02_01.html"
Opacity="0.5" />
</ListBoxItem>
<ListBoxItem Background="Blue">
<WebView Width="380" Height="180"
Source="http://www.atmarkit.co.jp/ait/subtop/features/da/ap_winrttips_index.html"
Opacity="0.5" />
</ListBoxItem>
</ListBox>
ListBoxItemコントロールを3つ配置し、それぞれにWebViewコントロールを入れた。ListBoxItemコントロールには背景色が、WebViewコントロールにはOpacityプロパティが設定してあることに注目。
これを実行すると、次の画像のようになる。
LixtBoxコントロールに入れたWin 8.1ストア・アプリのWebViewコントロール
ListBoxコントロールに入れてスクロールさせてもはみ出さない。Opacityプロパティも有効になって、背景色が透けて見える。
このほかにも、GoBack/GoForward/RefreshやStopといったページ遷移用のメソッドや、CanGoBack/CanGoForwardプロパティなど多くの機能が追加され、非常に使いやすくなっている。
Copyright© Digital Advantage Corp. All Rights Reserved.