Blend 4いいかも
XAMLが出た時は、「ああ、また違う語彙のXMLを覚えなきゃならないのか」と辟易した記憶がある。
そんな私だからExpression Blendが出た当初、ちょっと使ってみた所かなりバギーだったこともあって完全に見切ったツールだった。
しかしバージョン4となった今使ってみると、これは便利だと思い始めてきた。
何が便利ってBlend 4を使えばXAMLを調べる必要が無いのだ。もちろんXAMLの全ての機能をBlend 4から使える訳ではないのだろうが、それでも画面のデザインに関してXAMLを意識せずに作れるのはXAMLを知らない私にとっては心地がよい。それでも解らない部分があれば調べて直接XAMLにアクセスすれば良いのだ。
また、XAMLはビルド時に一部のコードを生成しており、Blend 4でデザインすることは意識せずにコードを書いているということでもある。
XAMLから生成されるコード(C#)
public partial class MainPage : Microsoft.Phone.Controls.PhoneApplicationPage { internal System.Windows.Controls.Grid LayoutRoot; internal System.Windows.Controls.StackPanel TitlePanel; internal System.Windows.Controls.TextBlock ApplicationTitle; internal System.Windows.Controls.TextBlock PageTitle; internal System.Windows.Controls.Grid ContentPanel; private bool _contentLoaded; ////// InitializeComponent /// [System.Diagnostics.DebuggerNonUserCodeAttribute()] public void InitializeComponent() { if (_contentLoaded) { return; } _contentLoaded = true; System.Windows.Application.LoadComponent(this, new System.Uri("/WindowsPhoneApplication4;component/MainPage.xaml", System.UriKind.Relative)); this.LayoutRoot = ((System.Windows.Controls.Grid)(this.FindName("LayoutRoot"))); this.TitlePanel = ((System.Windows.Controls.StackPanel)(this.FindName("TitlePanel"))); this.ApplicationTitle = ((System.Windows.Controls.TextBlock)(this.FindName("ApplicationTitle"))); this.PageTitle = ((System.Windows.Controls.TextBlock)(this.FindName("PageTitle"))); this.ContentPanel = ((System.Windows.Controls.Grid)(this.FindName("ContentPanel"))); } }
レイアウトの座標情報はコードとしては生成されないようだ。(実行時にリソースから設定される?)