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")));
        }
    }

レイアウトの座標情報はコードとしては生成されないようだ。(実行時にリソースから設定される?)

こんなデザインも簡単


(実用性があるかどうかは別にして)このような複数のボタンが傾斜したデザインの画面を作る場合、AndroidならばButtonクラスを拡張するか、自らボタンを描画する、又は特殊なレイアウトオブジェクトを作るしかないと思うが、Blend 4を使えば一行もコードを書かずに数分で出来てしまう。
角度がついたボタンは当然ボタンコントロールとして普通に動作する、Buttonクラスのインスタンスだ。

Blend 4はデザイナとプログラマの完全な分業を目指すために作られのだろうと推測されるが、プログラマが使っても十分に便利なツールだと思う。