【Blen道】BlendのXAMLは美しい


#wpdev_jp #windev_jp

Bend を極める、ひいては アプリのUIを極める、その名も Blen道。

image

■自動生成コードは汚い?

開発ツールでWYSIWGというかRADというか、デザインすると必ず出る話。

「ツールによって自動生成されるコードは汚いから手で書く」

Blend と XAML はそうならない。なぜなら、そういう関係ではないから。

■ Blend はコードの自動生成をしない

まぁ、もちろんBlend は XAMLを自動的には作りますけどね(作ってくれなきゃ困りますw)。(^^;

ここで問題となっている「自動生成」というのはこういう感じでしょう。Windows Form などが代表的なのかも。

  • 画面上で作成した設定をもとに、対応するAPIを組み合わせて表現するというもの。
  • 場合によっては全く指定していない、設定が勝手に入ったり、
  • 画面上のちょっとした違いで全く違うコードになったりする

Blend では何が違って、なぜ「自動生成」ではないかというと、

  • Blend の UIはXAML の設定をそのまま1:1に反映しており、
  • ユーザーの設定をそのまま1:1にXAMLに「変換」しているだけ

だからなんです。それは、Blend の UIを見てもらえば一目瞭然で、XAMLの タグやElement の各項目に対して、プロパティやオブジェクトとタイムラインの項目はきちんと1:1に対応しています。つまり、

「Blend は XAML の GUI設定ツールなのです」

「Blend を使ってXAMLが理解できた」という声をいただきましたが、それはツールとしてこのような設計になっているからなんだと思います。

image

もちろん、VerticalAlignmennt などは設定した覚えもない!という人もいるかもしれませんが、画面に配置しサイズを決定する際にAlignment表記はされており、設定しているのである。というか、これを適切に切り替えながらデザインしたりします。

■ BlendのAPIカバー率(は具体的にはわかりませんが)

では、すべてのタグ、エレメント、アトリビュートに Blend は対応しているのかというと、残念ながら必ずしもそうではないです。私の独断と偏見による直観で言えばUIに関するものの78%くらいではないでしょうか? しかし、現バージョンに至るまでかなりの数のオブジェクトが設定できるようになりました。毎回バージョンが上がるごとにびっくり&感動しています。

むしろたくさん対応しているので、その表現方法や設定方法は Blend をよく知っていないと設定できない!なんてのもあったりします。そんなところをちゃんとお伝えしたいですね。

■今日のまとめ

「Blend で生成されるXAMLは、開発者/デザイナーが描いたもの」

p.s.

… 改行とかアトリビュートの並びとかレベルの「美しさ」は無しねw その辺は完全に趣味嗜好の世界ですからw

Comments (0)

Skip to main content