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")));
}
}
レイアウトの座標情報はコードとしては生成されないようだ。(実行時にリソースから設定される?)
