
Silverlight 2で.NET技術をカッコよく使おう(2)
無料Visual Studioで始めるSilverlight 2超入門
インフラジスティックス・ジャパン株式会社
テクニカルエバンジェリスト/デベロッパーサポートエンジニア
山田 達也
2009/1/15
初めてでも分かるXAMLの中身
- - PR -
WebアプリケーションではHTMLファイル、WinFormsならフォームといったように、開発プラットフォームごとにUIを構成する要素は異なりますが、SilverlightではXMLベースのXAML(ザムル)によってすべての画面要素が定義されます。
XAMLは、eXtensible Application Markup Languageの頭文字を取ったもので、同じマークアップ言語のHTMLと同じように、画面上のすべてのオブジェクトはタグの組み合わせによって表現されます。XAMLについての詳細は、特集「Silverlightは次世代のJavaScriptフレームワーク?」の「XAMLって何ざむるか?」をご覧ください。
では、先ほど修正したPage.xamlの中身をもう一度見ていきましょう。以下のタグは、.NETでは「コントロール」(要素)と呼ばれていて、Silverlightの1.0では使えませんでしたが、2から使えるようになりました。
■ Silverlightの基本的な“単位”、<UserControl>タグ
<UserControl x:Class="MyFirstSLApp.Page" |
まず<UserControl>タグが出てきましたが、Silverlightでは画面の単位として、さまざまな場面でユーザーコントロール(<UserControl>タグ)を使います。このPage.xamlのようにページ全体の記述にも使いますし、特定のUIのかたまりを共通部品として切り出したい際にも使います。
このタグの中で、クラス名(MyFirstSLApp.Page)やXAMLの中で必要なネームスペース(名前空間)の設定、Silverlightが表現する画面のサイズ(400×300)を定義しています。
■ レイアウトコンテナの例、<Grid>タグ
<Grid x:Name="LayoutRoot" Background="White"> |
次に登場するのが<Grid>タグです。XAMLでは、画面上のすべてのオブジェクトは階層的に管理されるため、最上位のオブジェクトは必ず1つです。この<Grid>タグが、Page.xaml全体のレイアウトを握っています。レイアウトの表し方はほかにもあり、まとめて後述します。この中に、先ほど追加した<TextBox>タグがあります。
■ UI部品の例、<TextBox>タグ
<TextBox Text="Hello World!" Foreground="Blue" |
ここで指定しているのは、テキストと前景色(Foreground="Blue")、背景色(Background="Yellow")の設定だけです。特にサイズを指定していないため、このTextBoxの背景色が画面全体に適用されました。TextBoxにサイズの設定を加えると、表示は以下のように変わります。
![]() |
| 図13 <TextBox>タグにサイズを指定 |
TextBox以外にもSilverlight 2にはさまざまなUI部品があります。ほかのUI部品については後述しますが、いろいろと試してみてください。
Silverlight 2で使用可能な3種類のコンテナ
このように、XAMLの世界では、コンテナとなる親オブジェクトによって、子のレイアウトが決定されます。Silverlightで使用可能なコンテナは以下の3種類です(下記リストは、インデックスになっています)。
- <Canvas>タグ
最も単純なコンテナ。指定された位置どおりに子の位置が決定される - <StackPanel>タグ
積み重ね式のコンテナ。垂直または水平方向に順番に配置される - <Grid>タグ
列と行の定義に従って子を配置可能なコンテナ。HTMLにおける<table>タグと同じ役割
それぞれのコンテナの使用例を下に挙げておきます。ソースと照らし合わせて確認してみてください。
■ 座標で指定する<Canvas>タグ
![]() |
| 図14 <Canvas>タグの例 |
<Canvas x:Name="LayoutRoot" Background="Aquamarine"> |
ZIndexの値に従ってオブジェクトが重なります。
■ 垂直または水平方向に順番に配置される<StackPanel>タグ
![]() |
| 図15 <StackPanel>タグの例 |
<StackPanel x:Name="LayoutRoot" Background="LightGreen"> |
指定した方向に自動的に整列します。
■ HTMLにおける<table>タグと同じ<Grid>タグ
![]() |
| 図16 <Grid>タグの例 |
<Grid x:Name="LayoutRoot" Background="White"> |
行・列の指定通りに格子状に配置します。
次のページでは、Silverlight 2の標準コントロールを紹介し、対話型のアプリケーションを作成します。
| 1-2-3-4 |
| INDEX | ||
| Silverlight 2で.NET技術をカッコよく使おう(2) 無料Visual Studioで始めるSilverlight 2超入門 |
||
| Page1 Silverlight 2開発環境を一からインストール |
||
| Page2 初めてのSilverlight 2プロジェクト |
||
| Page3 初めてでも分かるXAMLの中身 Silverlight 2で使用可能な3種類のコンテナ |
||
| Page4 Silverlight 2の標準コントロールはこんなにたくさん! 次回は、アニメーションでSilverlightをカッコよく使う コラム 「Silverlight 2で画面遷移を行うには?」 |
||
Silverlight 2で.NET技術をカッコよく使おう バックナンバー 連載インデックスへ»
- 第1回 ついにRTWされたSilverlight 2は1.0と何が違うの?
- 第2回 無料Visual Studioで始めるSilverlight 2超入門
- 第3回 デザインツールで始めるSilverlightアニメ/グラフィック
- 第4回 Silverlight 2で落書きアプリを作るための5つのテク
- 第5回 最新の画像処理技術PhotosynthとDeepZoomを使う
| リッチクライアント&帳票 全記事一覧へ |
TechTargetジャパン
- 次のモバイルアプリはどのフレームワークで作る? (2012/5/24)
スマホアプリの開発を容易にするJavaScriptのフレームワークが続々と増えている。それぞれの良さや仕組み、何がどこまでできるのかを徹底解剖する - 「LESS&専用エディター」でCSSをシンプルに書こう (2012/5/23)
「LESS」はCSS初心者に向けた、シンプルなライブラリだ。「LESS」で、変数などのプログラミングの基礎的な考え方もCSSで学ぼう - 学校が世界一のデジタル環境になったら (2012/5/18)
授業はアーカイブに蓄積され、家からも見られる。家族が授業テーマのアイデアを出す。そんな姿が実現されるかもしれない - 1000万ドル調達も夢じゃないクラウドファウンディング (2012/5/15)
クラウドファンディングは、寄付型でも投資型でもない「購入型」が主流。商品を“開発する前に販売”して開発費用を集める逆転のシステムだ
|
|




