.NET TIPS [Silverlight 2]Silverlightアプリケーションをフルスクリーンで表示するには?[C#、VB]デジタルアドバンテージ 一色 政彦2009/08/20 |
![]() |
Silverlightアプリケーションは、ページの一部または全体に埋め込む「埋め込みモード」が基本だが、Webブラウザの枠を超えて全画面で表示する「全画面表示モード」もサポートしている。全画面表示モードは、スクリーンいっぱいに広げて見やすくしたいケースで特に便利で、例えば画像や動画をスクリーン全体に広げて見せるという使い方ができる。
次のサンプルでは、Silverlightアプリケーション上のボタンをクリックすると、Silverlightプラグインの埋め込みモードと全画面表示モードをトグルする(=切り替える)。
| 埋め込みモードと全画面表示モードをトグルするサンプル | |
| ユーザーが[Esc]キーを押すと全画面表示モードは終了する。 |
ただし、全画面表示モードにはいくつかの制限があるので、注意してほしい。
具体的には、ユーザーの要求をきっかけにしたタイミング、例えばボタンがクリックされたタイミングなどでしか、全画面表示モードに移行できない。また、上のサンプルでも分かるように、TextBoxコントロールなどへのテキスト入力が行えない。これらの制限は、悪意のあるサイトが画面を偽装してパスワードや個人情報を盗もうとするのを防ぐためのセキュリティ的な配慮のようだ。
■フルスクリーン表示にする方法
通常の埋め込みモードから全画面表示モードに切り替えるには、Contentクラス(System.Windows.Interop名前空間、System.Windows.dllアセンブリ)のオブジェクトのIsFullScreenプロパティをtrueに設定するだけだ。逆に埋め込みモードに戻すには、falseを設定すればよい。
Contentオブジェクトは、次のプロパティから取得できる。
App.Current.Host.Content |
Silverlightアプリケーションを示すApplicationクラス(System.Windows名前空間)には、現在のApplicationオブジェクトを取得するための静的プロパティCurrentがある。上記コードの「App」は、そのApplicationクラスを継承したクラス(SilverlightApplication1名前空間)である。
そして、AppクラスのCurrentプロパティからApplicationオブジェクトを取得し、そのHostプロパティからSilverlightHostクラス(System.Windows.Interop名前空間)のオブジェクトを取得する。そこからSilverlightコントロールの情報を取得/設定したり、オブジェクトを操作したりできる。
今回は、SilverlightHostオブジェクトのContentプロパティを呼び出している。Contentプロパティでは、 Silverlightアプリケーションのコンテンツ領域に関するAPIが含まれるContentクラス(System.Windows.Interop 名前空間)のオブジェクトが取得できる。
あとは、このContentオブジェクトが持つIsFullScreenプロパティをtrueに設定すれば、Silverlightアプリケーションのコンテンツ領域をフルスクリーンに拡張できる。
なおAppクラスは、Visual Studioの「Silverlight アプリケーション」プロジェクト・テンプレートで自動生成されるクラス(ファイル)である。
次のコードは実際に、ボタンがクリックされたときのイベント・ハンドラで、IsFullScreenプロパティをtrueやfalseに設定することにより、埋め込みモードと全画面表示モードをトグルするサンプル・コードである。IsFullScreenプロパティの値を取得すれば、全画面表示モード(=true)か埋め込みモード(=false)かを調べられる。このサンプル・コードでは、これを利用して、全画面表示モードと埋め込みモードをトグルさせる処理を実装している。
|
||
| 埋め込みモードと全画面表示モードをトグルするサンプル・コード(上:C#、下:VB) |
ちなみに、埋め込みモードと全画面表示モードが切り替わった際には、FullScreenChangedイベントが発生するので、そのタイミングで特別な処理を行いたいときには、このイベントをハンドルすればよい。![]()
| カテゴリ:Silverlight 2 処理対象:ブラウザ 使用ライブラリ:SilverlightHostクラス(System.Windows.Interop名前空間) 使用ライブラリ:Contentクラス(System.Windows.Interop名前空間) 使用ライブラリ:Applicationクラス(System.Windows名前空間) |
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


