Windows Presentation Foundation "Property Binding"
.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="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="https://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 を参照してください。