首页 > 解决方案 > 为什么 C# 3D imgae 画笔在以编程方式应用于 3d 模型时不起作用?

问题描述

我有这个非常简单的 C# 方法,它创建一个 MeshGeometry3D 元素并以编程方式将其放置在 Model 3DGroup 中:

  public static GeometryModel3D DrawElement(Model3DGroup group,string type, double x, double y)
          {
              MeshGeometry3D mesh = new MeshGeometry3D();
              mesh.Positions.Add(new Point3D(-0.5, -0.5, 0));
              mesh.Positions.Add(new Point3D(0.5, -0.5, 0));
              mesh.Positions.Add(new Point3D(0.5, 0.5, 0));
              mesh.Positions.Add(new Point3D(-0.5, 0.5, 0));

              mesh.TriangleIndices.Add(0);
              mesh.TriangleIndices.Add(1);
              mesh.TriangleIndices.Add(2);
              mesh.TriangleIndices.Add(2);
              mesh.TriangleIndices.Add(3);
              mesh.TriangleIndices.Add(0);                      


              if (type == "highlight")
              {                
                  ImageBrush imgBrush = new ImageBrush(new BitmapImage(new Uri(@"E:\2.jpg")));
                  element = new GeometryModel3D(mesh, new DiffuseMaterial(imgBrush));
              }

              element.Transform = new Transform3DGroup();
              group.Children.Add(element);
              return element;
          }

问题是,当我使用 eimage 画笔时,对象不会出现,就像它是不可见的一样,但是当我使用这样的实心画笔时,它可以正常工作:

  element = new GeometryModel3D(mesh, new DiffuseMaterial(Brushes.Red));

我仔细检查了图像文件 E:\2.jpg 存在。

你能帮帮我吗?

标签: c#wpf3dbrush

解决方案


推荐阅读