我做了一个3D盒子的代码背后。
我想把材料的颜色(比如DiffuseMaterial)用字符串的形式表示出来,通过使用 RayMeshGeometry3DHitTestResult result1
在鼠标左键向下。
GeometryModel3D result2 = result1.ModelHit as GeometryModel3D;
我用了
MessageBox.Show(result2.Material.ToString());
这不行!
非常感谢。
如果你想得到的颜色是 Brush
营造 DiffuseMaterial
作为 string
那么你需要先检查它是否是 DiffuseMaterial
由于并非所有材料都需要工作 Brush
,然后你必须检查是否 Brush
是 SolidColorBrush
因为只有这样才能支持单色。类似下面的东西应该可以用。
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();
}