.NET Framework 3.0 (formally WinFX) のプレゼンテーション テクノロジである Windows Presentation Foundation には、非常に革新的で興味深い機能が多数あります。その下側では Direct3D が動いているので、ベクトル描画や3D描画も高速です。また、その記述言語である XAML (eXtensible Application Markup Language) も非常に便利で、こんなことまで宣言型構文で可能なんだと驚くこともあります。
その1つが Binding です。Binding を使えばデータベースのデータなどを取得することもできますが、ここでは一番シンプルな Property Binding を紹介しましょう。Real-time Ink in 3D: A Postcard from Stefan Wickをご覧ください(Vista あるいは XP 、IE6 あるいは IE7でないと見られません。XP の場合、.NET Framework 3.0 Runtime が必要です)。上の絵葉書にマウスで絵を描くと、それが下の3D絵葉書に同じように描画されます。
もっと単純な例を紹介しましょう。
<DockPanel xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" > <Slider Name="Mine" Maximum="400" Minimum="10" DockPanel.Dock="Top"/> <Rectangle Fill="Green" Stroke="Black" Width="{Binding ElementName=Mine, Path=Value}" /> <Ellipse Fill= "Red" /></DockPanel>
この XAMLを IE か XAMLPad (Windows SDK に同梱) で見ていただくと、一番上にスライダと下に矩形と楕円が表示されます。上のスライダを左右に動かすと、矩形と楕円がが大きくなったり、小さくなったりします。特に、明示的にイベントを取得して、値を取得するようなコードがあるわけではありません。上の7行(実質5行)だけで、こういったことが実現できるのです。鍵となっているのは Binding によってスライダの値を使って矩形の幅を宣言していることです。
Windows Presentation Foundation の情報や最新のダウンロードは、MSDN Windows Vista Developer Center を参照してください。