VisualBrush, Key input to 3D
Windows Presentation FoundationのBrushはかなり強力で、ほとんど何でも塗りつぶしに使えます。たとえば、画像ならImageBrush、ビデオならVideoBrush、ベクトル グラフィックスならDrawingBrushが使えますし、それ以外にもキー入力を別の矩形などに表示したいときなどは、そのFillプロパティにVisualBrushを使えば実現できます。
<TextBox Grid.Column="0" Grid.Row="0" x:Name="myInput" Text="キー入力" />
...
<Rectangle Width="300" Height="100" >
<Rectangle.Fill>
<VisualBrush>
<VisualBrush.Visual>
<TextBlock Text="{Binding ElementName=myInput, Path=Text}" Background="Red" Width="100"/>
</VisualBrush.Visual>
</VisualBrush>
</Rectangle.Fill>
</Rectangle>
実は、このVisualBrushはGeometryModel3Dのマテリアルとしても使えます。つまり、3Dオブジェクトにキー入力を表示させることができます。別にキー入力だけではなく、何らかのテキストデータを3Dオブジェクトに表示させる際にも同じ手法が使えます。
<GeometryModel3D.Material>
<DiffuseMaterial>
<DiffuseMaterial.Brush>
<VisualBrush>
<VisualBrush.Visual>
<TextBlock Text="{Binding ElementName=myInput, Path=Text}" Background="Red" Width="100" />
</VisualBrush.Visual>
</VisualBrush>
</DiffuseMaterial.Brush>
</DiffuseMaterial>
</GeometryModel3D.Material>
添付のXAMLファイルは3Dに入力テキストを表示させたlooseXAMLです。