XAML(ザムル/Extensible Application Markup Language)とは、Windowsアプリなどの画面の見た目を、XMLの書き方で記述するためのマイクロソフトの言語のことです。ボタンや入力欄をどこにどう並べるかを、タグを組み合わせて表します。
現実世界に例えると、XAMLは部屋の家具配置図のようなものです。何をどこに置くか、どんな色や大きさにするかは図面に書き、実際にどう使うかという動きの部分は、別の担当者が受け持ちます。
XAML図解
XAMLが使われる主な技術
| 技術 | 作れるもの | 現在の状況 |
|---|---|---|
| WPF | Windowsのデスクトップアプリ | 業務用で現役 |
| WinUI | 新しいWindowsアプリ | 現在の推奨 |
| .NET MAUI | 複数OS向けのアプリ | 現在の推奨 |
| Silverlight | ブラウザ上のアプリ | 提供終了 |
見た目と動きを分けて書く
最大の特徴がここにあります。画面の構成はXAMLで、ボタンを押したときの処理はC#などのプログラムで、というように、役割ごとにファイルを分けて書きます。デザインを担当する人と処理を書く人が、互いの作業を邪魔せずに並行して進められるようにする狙いがあります。
XMLの書き方に沿っている
書式の土台です。開始と終了のタグで部品を囲み、属性で色や大きさを指定する、というXMLの決まりにそのまま従っています。HTMLを書いたことがある人なら、見た目の雰囲気はすぐにつかめます。ただし大文字と小文字の区別や、タグの閉じ忘れには厳しく、少しの誤りでも読み込めなくなります。
入れ子で画面を組み立てる
画面の作り方の考え方です。縦に並べる、格子状に配置する、といった入れ物の部品の中に、ボタンや文字を入れていく形で画面を組み立てます。入れ物の中にさらに入れ物を入れることもでき、複雑な画面も階層の組み合わせで表現します。
データと画面を結び付けられる
XAMLらしい機能です。画面上の表示とプログラム側のデータを結び付けておくと、データが変わった瞬間に画面の表示も自動で書き換わります。この仕組みは「データバインディング」と呼ばれ、表示を更新するための処理を一つずつ書く手間を大きく減らしてくれます。
見た目の一括変更がしやすい
保守の面での利点です。色や文字の大きさといった見た目の決まりを一か所にまとめて定義し、画面全体から参照する書き方ができます。配色を変えたいときは定義を直すだけで、すべての画面に反映されます。明るい表示と暗い表示の切り替えも、この仕組みで実現できます。
WPFとともに登場した
成り立ちに触れておきます。2006年、.NET Framework 3.0に含まれたWPFの画面記述言語として登場しました。その後、ブラウザ向けのSilverlight、スマートフォン向けの技術へと広がり、形を変えながらも、マイクロソフトの画面作りの中心的な書き方として受け継がれています。
技術ごとに方言がある
実務で戸惑いやすい点です。同じXAMLという名前でも、WPF、WinUI、.NET MAUIといった技術ごとに使える部品や書き方が少しずつ異なります。ある技術向けに書いた画面が、別の技術でそのまま動くとは限りません。調べ物をするときは、どの技術の話かを確かめる必要があります。
あわせて知っておきたい用語
- XML:
タグで意味を示しながらデータを表す記述形式です。 - .NET Framework:
マイクロソフトが提供するアプリ開発の基盤です。 - C#:
マイクロソフトが開発したプログラミング言語です。 - UI:
利用者が操作する画面や、その仕組みのことです。



コメント