- 題名: Viewport3Dで表示する画像の指定方法について
- 日時: 2010/04/05 18:34:19
- ID: 26673
- この記事の返信元:
- (なし)
- この記事への返信:
- [26674] Re[1]: Viewport3Dで表示する画像の指定方法について2010/04/05 19:06:45
- ツリーを表示
■No26674に返信(Hongliangさんの記事)
>><ModelVisual3D x:Name="myModel">
>> <ModelVisual3D>
>> <ModelVisual3D.Content>
>> <GeometryModel3D>
> 元々は ModelVisual3D である myModel の子にもう一つ ModelVisual3D があり、その Content に GeometryModel3D があるのに、
>>myModel.Content = model;
> myModel そのものの Content に設定しちゃってます。
Hongliang様
ご指摘いただいた点の修正に加えて、
modelに対してDiffuseMaterialの他に現状のGeometryとTransform設定してから
ModelVisual3DのContentにセットすることで希望通りの処理を行うことができました。
XAML:
<ModelVisual3D x:Name="myModel">
<ModelVisual3D.Content>
<GeometryModel3D x:Name="myGeometry">
<GeometryModel3D.Geometry>
<MeshGeometry3D ・・・・ />
</GeometryModel3D.Geometry>
<GeometryModel3D.Transform>
:
</GeometryModel3D.Transform>
C#:
ImageBrush imgBrush = new ImageBrush(imgSource);
DiffuseMaterial mate = new DiffuseMaterial(imgBrush);
var model = new GeometryModel3D(myGeometry.Geometry, mate);
model.Transform = myGeometry.Transform;
myModel.Content = model;
ありがとうございました。
分類:[.NET]
度々お世話になります。 Viewport3Dで表示する画像の指定方法について質問があります。 元々は固定されたファイル名を表示するため、XAMLで以下のように書かれていました。 <ModelVisual3D x:Name="myModel"> <ModelVisual3D> <ModelVisual3D.Content> <GeometryModel3D> <GeometryModel3D.Material> <DiffuseMaterial> <DiffuseMaterial.Brush> <ImageBrush ImageSource="C:\Users\aaa.jpg"/> </DiffuseMaterial.Brush> </DiffuseMaterial> </GeometryModel3D.Material> これを入力されたファイル名に従って表示を切り替えるよう変更することになったので 上記のGeometryModel3D.Material部分を削って C#に以下のようなソースを追加しました。 string szInput = 入力されたパス; BitmapImage imgSource = new BitmapImage(new Uri(szInput)); var model = new GeometryModel3D(); model.Material = new DiffuseMaterial() { Brush = imgBrush }; myModel.Content = model; ところが起動しても画像が表示されません。 自分なりに色々調査したのですが解決にいたらずここで質問させていただくことにしました。 どうぞよろしくお願いします。