(本記事はVisualStudio2012RC+Windows8RP環境で確認しております。製品版では動作が異なる可能性があるのでご注意ください。)
故あってMetroスタイルアプリケーション@HTML+JSデビュー。
お仕事がWeb屋なんだからHTMLはなれたもの!!(のはず・・・)
まずはプロジェクトの作成。
左ナビから[その他言語]→[JavaScript]→[Windows Metro Style]を選択。
おープロジェクトの種類もC#+XAML版とは異なりますね。
(でも「空のアプリケーション」とC#+XAML版の「Blank App」は同じ意味だよね・・・)
「固定レイアウトアプリケーション」が気になりますが、最初なので
「空のアプリケーション」を作成します。
作成直後に開かれるのは「default.js」
C#+XAMLでいうところのApp.xaml.csに対応したものっぽいけど、処理は明らかに少ないですね。
早速デバッグ!!
ですがそのままというのもなんですのでブレークポイントをはってみます。
VisualStudioで初のJavaScriptをブレークポイントで止めます。
おおっ、止まったぁ。
スタックを見てみるとbase.jsが先に実行されていることがわかります。
base.jsはどこにあるかというと、参照にデフォルトで追加されています。
開いてみると1万行ぐらいのJSファイル・・・これはおいおい必要に応じて読むようにしましょう。
ほかにもui.jsなどがあります。
cssディレクトリにはui-dark.cssとui-light.cssがあります。
ライトとダークのテーマを定義しているんでしょうかね。
開いてみると、
@font-face {
font-family: "Segoe UI";
font-weight: 200;
src: local("Segoe UI Light");
}
Segoe UIですね。Meirio UIはこのファイル内には無いようでした。
とりあえず深追いせずに参照のファイル確認終了。
アプリケーション起動時に呼び出されるビューファイルはdefault.htmlです。
そのことはpackage.appxmanifestファイルに記載されています。
では、default.htmlを開いてみます。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta charset="utf-8" />
<title>空のアプリケーション</title>
<!-- WinJS references -->
<link href="//Microsoft.WinJS.1.0.RC/css/ui-dark.js" rel="stylesheet" />
<script src="//Microsoft.WinJS.1.0.RC/js/base.js"></script>
<script src="//Microsoft.WinJS.1.0.RC/js/ui.js"></script>
<!-- 空のアプリケーション references -->
<link href="/css/default.css" rel="stylesheet" />
<script src="/js/default.js"></script>
</head>
<body>
<p>Content goes here</p>
</body>
</html>
おおっ、HTMLだ!!(当然か)
なんかVisualStudioで開発してないみたいです。
ツールボックスからボタンを配置してみます。
<body>
<p>Content goes here</p>
<input id="Button1" type="button" value="button" />
</body>
実行結果は・・・
おおっ、メトロっぽい。
(ちなみにスタイルシートを外すと一気にSilverlightっぽいコントロールになります)
Blendで開いてみる
HTMLでコントロールを配置する自信がなかったので、Blendで編集してみます。
Blendを起動するには、slnファイルをBlendで開いてもいいですが、ソリューションエクスプローラーのプロジェクト名を右クリックから起動することもできます。
default.cssも一緒に開かれていて、ViewStateにあたるものが定義されていることがわかります。
ここでlandscape時やsnapなどの見た目を変更するんでしょうね。
というわけで、JS+HTMLのプロジェクトをさわってみました。
これからどんどんJS+HTMLも紹介していこうと思いますのでよろしくお願いします。
Please give us your valuable comment