关于工作与材料的模型视觉3D的麻烦?

问题描述 投票:0回答:1

我做了一个3D盒子的代码背后。

我想把材料的颜色(比如DiffuseMaterial)用字符串的形式表示出来,通过使用 RayMeshGeometry3DHitTestResult result1 在鼠标左键向下。

GeometryModel3D result2 = result1.ModelHit as GeometryModel3D;

我用了

MessageBox.Show(result2.Material.ToString());

这不行!

非常感谢。

c# wpf 3d
1个回答
2
投票

如果你想得到的颜色是 Brush 营造 DiffuseMaterial 作为 string 那么你需要先检查它是否是 DiffuseMaterial由于并非所有材料都需要工作 Brush,然后你必须检查是否 BrushSolidColorBrush 因为只有这样才能支持单色。类似下面的东西应该可以用。

DiffuseMaterial material = result2.Material as DiffuseMaterial;
if (material != null)
{
    string brushColor = null;
    var brush = material.Brush as SolidColorBrush;
    if (brush != null)
        brushColor = brush.Color.ToString();
}
© www.soinside.com 2019 - 2024. All rights reserved.