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です。