VisualBrush, Key input to 3D

Published 20 October 06 02:27 PM | hiroyuk 

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

Attachment(s): VisualBrush.xaml

Comments

No Comments
Anonymous comments are disabled

About hiroyuk

マイクロソフト㈱エバンジェリスト。北海道大学理学部物理学科卒。リアルタイム3Dグラフィックスを専門とし、グラフィックスやシェーダに関する技術文章を執筆・講演。 DirectX SDK日本語ドキュメントの開発に携わるとともに、Windows Presentation Foundation プログラミング(オーム社)、Game Programming Gemsシリーズ、リアルタイム レンダリング第2版(ボーンデジタル)、Texturing & Modeling, A Procedural Approach などを翻訳・監修、XAMLプログラミング(ソフトバンク クリエイティブ)を執筆。趣味は薪割り。

Search

This Blog

DirectX 情報

Silverlight 情報

Windows 情報

WPF 情報

並列コンピューティング情報

著書

Syndication

Page view tracker