Luna(ルナ)は、Windows XP と Windows Server 2003に搭載されている、ユーザインタフェース (UI) のスキンのひとつである。

## 用語

Windowsでは、スキンのことを「テーマ」と称する。このうち、Windows XP以降で導入されたリッチな外観を「ビジュアル スタイル」と呼ぶ。アプリケーションでビジュアルスタイルを有効にするには、後述するようにコモンコントロールライブラリのバージョン6.0以降を使用するように指定しなければならない。

Lunaは開発コードネームおよび通称であり、正式名称ではない。Windows XP の開発コードネームからWhistlerスタイルと呼ばれることもある。実際のWindows XPでは「Windows XP スタイル」と表現されている。これに対し、ビジュアルスタイルを使わない従来のWindowsと同様のスタイルは「クラシック スタイル」と呼ばれる。

## 外観

デフォルトは青色をベースとした配色である。タスクバー、スタートメニュー、ウィンドウの縁や、タイトルバー、スクロールバー、ログオン画面などのグラフィカルユーザインタフェース (GUI) 要素にLunaのデザインが適用される。全体的に丸みを帯びて光沢を持ったイメージが使用されている。標準の青色以外にもシルバーとオリーブグリーンの配色があり、Windows XPプリインストールのメーカー製PCの中には青色以外を初期設定にしている製品もあった。

「草原」(Bliss) の壁紙もLuna既定の設定の特徴のひとつだが、これはクラシックスタイルでも使用することができる。

Lunaに使用される画像リソースはシステムファイル内にWindows bitmap形式で埋め込まれており、マウスオーバーおよびクリックやドラッグの際に色が変わる単純なアニメーション効果も施される。このためクラシックスタイルと比較してCPUの負荷やメモリの使用量が増える。ただし、アニメーションやフェード効果、影の有無などはシステムの詳細設定から有効・無効を切り替えることができる。

## Lunaから派生したビジュアルスタイル

### マイクロソフト純正

#### Royale

Lunaを元に、Media Center Edition と Tablet PC Edition 向けに開発されたデフォルメ版のビジュアルスタイルで、Media Center Edition やタブレットPCのマシンではエナジーブルーと呼ばれるテーマとしてプリセットされている。Royaleはグラデーションで光沢感を表現した、Media Center Style という配色を採用している。Windows XP デフォルトの草原をRoyaleの色調に合わせたエナジーブリスと呼ばれる壁紙も新規に添付されている。

Royaleは最初、Media Center Edition でしか利用できなかったが、2005年4月7日にMicrosoft New Zealand がこれにリソースを追加した一般向けデスクトップテーマ「Royale Theme」を発表したことで、Media Center Edition 以外でも利用できるようになっている。

#### Zune Desktop Theme

Zune発売を記念し、「Zune Desktop Theme」がZuneのサイトより期間限定で配布されていた。Royaleをベースに配色を変更し、Zuneを意識した黒基調のスタイルとなっている。また、Zuneのオリジナル壁紙が2種類添付されている。

#### Royale Noir

Royaleテーマの中で公式採用されなかったデザインが流出した物で、公式にはリリースされていない。タイトルバーは青みがかった黒、ボタンデザインは青を基調とし、RoyaleとZuneの中間のようなスタイルになっている。

### サードパーティー製のビジュアルスタイル

Windows XP の標準状態では、LunaとRoyale・Zune・Royale Noir以外のビジュアルスタイルを使えないが、システムファイル (uxtheme.dll) に改造を加えることで、Lunaに準じて制作された様々なスキンを使えるようになる。GUIを好みに合わせて変えたいがWindowBlindsのようなアプリケーションは動作が重いため使いたくないユーザーには好まれている上級者向けの方法である。uxtheme.dllを改造するパッチやユーザーが制作した様々なビジュアルスタイルがインターネット上で流通しているが、改造は自己責任で行う必要がある。

uxtheme.dllの改造だけではできないログオン画面の変更など、より多くのUI部位の変更に対応したStyleXPというシェアウェアも存在する。

### Windowsアプリケーション開発におけるビジュアルスタイル

Windows XP以降は、新しいビジュアルスタイルを使用したアプリケーションだけでなく、旧来のクラシックスタイルを使用したアプリケーションも同時に実行できるようになっている。これはWindows XP以降で搭載された分離アプリケーションとSide-by-Sideアセンブリ(通称WinSxS)と呼ばれるディスパッチ技術に基づき、使用するコモンコントロールライブラリcomctl32.dllのバージョンをアプリケーションごとに指定できることによるものである。

Windows XP にはコモンコントロールの旧バージョン5および新バージョン6の両方がインストールされているが、このWinSxS技術により、コモンコントロールのバージョン6以降を使用するアプリケーションはビジュアルスタイルが適用され、コモンコントロールのバージョン5を使用するアプリケーションはクラシックスタイルが適用されるようになっている。

ビジュアルスタイルを適用したWindowsアプリケーションを開発するには、コモンコントロールのバージョン6以降を使用するように記述された、アプリケーションマニフェストファイルをリソースとして埋め込むか、実行プログラムの存在するフォルダにマニフェストファイルを配置する必要がある。マイクロソフトの標準開発環境である Microsoft Visual Studio のバージョン2005以降は、リンカのオプションでマニフェストファイルを指定できるほか、pragmaディレクティブによるSide-by-Sideアセンブリのバージョン指定も可能となっている。

なお、.NET Framework 2.0以降を使用するWindows Formsアプリケーションの場合は、Application.EnableVisualStylesメソッドを実行するだけでよい。Windows Presentation Foundationの場合は、メッセージボックスなどの一部を除いて画面描画にはコモンコントロールライブラリではなくXAML描画エンジンが使用される。Windows XP上でWPFアプリケーションを実行する場合、既定でPresentationFramework.Luna.dllやPresentationFramework.Royale.dllといったテーマアセンブリが自動的に適用される。

## Vista以降

Windows Vista ではLunaは削除され (ベータ版などでは搭載していたバージョンもあった/正規版でも一部アプリケーションにはLunaスタイルが採用されている)、Windows Aero という新しいインタフェースが実装された。半透明効果や3Dグラフィックスによる高度なエフェクトが多用されている。

Windows Aero が省かれた Windows Vista Home Basic や、他のエディションでもデスクトップ コンポジションを無効にする設定により、Windows XP に近いビジュアルスタイルが使用可能である。しかしLunaとの互換性はない。