大きく変わるWindowsストア・アプリ開発 〜 そのほかの変更点特集:次期Windows 8.1&Visual Studio 2013 Preview概説(後編)(2/4 ページ)

» 2013年07月24日 15時08分 公開
[山本康彦,BluewaterSoft]

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>

ListBoxコントロールの中にWebViewコントロールを3つ配置した(XAML、Win 8.1)
ListBoxItemコントロールを3つ配置し、それぞれにWebViewコントロールを入れた。ListBoxItemコントロールには背景色が、WebViewコントロールにはOpacityプロパティが設定してあることに注目。

 これを実行すると、次の画像のようになる。

LixtBoxコントロールに入れたWin 8.1ストア・アプリのWebViewコントロール LixtBoxコントロールに入れたWin 8.1ストア・アプリのWebViewコントロール
ListBoxコントロールに入れてスクロールさせてもはみ出さない。Opacityプロパティも有効になって、背景色が透けて見える。

 このほかにも、GoBack/GoForward/RefreshやStopといったページ遷移用のメソッドや、CanGoBack/CanGoForwardプロパティなど多くの機能が追加され、非常に使いやすくなっている。

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。