3D Tools for the Windows Presentation Foundation

WPF3D Team Blogからです。

Interacting with 2D on 3D in WPF – WPF3D Team Blog



CodePlexのサイトにて、3D Tools for the Windows Presentation FoundationのRelease 1.0がソースコード付きで公開されています。

CodePlex Archive



サンプルとしていくつかのデモプロジェクトが含まれていますが、このなかで特に見てほしいのが「InteractiveViewport3DSample」です。


通常、コントロールなどの2DオブジェクトをVisualBrushを使って3Dのマテリアルとすることで、3Dオブジェクト上に2Dオブジェクトを描画することができます。ですが、これは単純にブラシとして塗りつぶしているだけですので、たとえ3Dオブジェクト上にButtonを描画させたとしても、そのButtonを押すことはできません。


ところがこの3D Toolsを使うことで、擬似的にではありますがButtonを押すことができます。どのような仕組みで実現しているのかは、下記の画像を見ていただくとわかりやすいかと思います。



3Dの描画の上に薄く2Dの描画があることがわかるかと思いまが、これはInteractive3DDecoratorのDebugプロパティをTrueに設定することで表示されるものです。
どうやら、2Dのオブジェクトを3Dオブジェクトの表示におけるマウスカーソルの座標に合わせて動かすことで、マウスのクリックなどに対応させているようです。ですので、ComboBoxをドロップダウンさせるとそのまま2Dの表示のものが表示されてしまっています。


これを使うことで、WPFのユーザーインタフェースの可能性が大幅に広がりそうです。