投稿者 YuO  (社会人) 投稿日時 2011/10/2 06:32:36
> >ゲーム系ではあまり美味しさがないことも多いかと。
>  美味しさとは?具体的に教えていただけたら有り難いです

ゲーム系では,コントロールを使わずに直接描画することが多いと思います。
WPFの強みは,XAMLを使ってコントロールを描画すること無しには発揮できないため,「美味しさがない」と表現しました。
# TemplateやStyle,Bindingなどはすべてコントロールの存在が前提になってくるため。


>  >コントロールの自由なデザインと,強力なバインディング機構を通じたUIとロジックの完全分離,
>  >というのが基本的な強みだと思います。
>  すなわち見た目の美しさということなのかな
>  そして、プログラマとグラフィックデザイナーの共同作業の齟齬の減少に貢献するということなのでしょうか

基本的なコンセプトは,デザイナとプログラマが作業を分離できることです。
実際にはなかなかそうもいかないわけですが……。

自由なデザイン,というのは見た目の美しさのみを表すわけではないです。
一例として,WPFとWinFormsでTwitterのSearch APIを呼び出して結果を表示するプログラムを作ってみました。
http://pub.idisk-just.com/fview/e01LkoEMFB1iHnl-ETN-9tYq2mjdsDzQRQiY3MDs1BzYMbXh151CPauuiIa4QVvVMcFkTHMbRlMjB2E7iNwWflxL0vz415DC.zip
# メモリリーク系のバグが大量に残っている可能性が高いです。

WPFでは表示にDataTemplateを使ってExpression Blendのみで見た目の情報を設定しています。
また,XAMLのみに見た目の情報は集約しています。
# 正確には,日付やユーザー名のあたりでVMに書式を任せているため,完全にXAMLのみではないですが。

それに対して,WinFormsではListBoxにコントロールを設定するような機能がないため,
OwnerDrawを使って強引にListBoxの子コントロールとしてユーザーコントロールを設定して表示させています。

これだけの表示であっても,WPFは通常の機能の範囲内で設定が出来るのに対し,
WinFormsでは強引な記述が必要になります。
# スタックパネルにコントロールを積み上げて,スクロールさせる,という方法も考えましたが……。