C# 使用visual 3d模型的材质时遇到问题?
我用代码隐藏制作了一个3d盒子 我想以字符串格式获取材质的颜色(例如,DiffuseMeterial) 通过使用鼠标左键下的C# 使用visual 3d模型的材质时遇到问题?,c#,wpf,3d,C#,Wpf,3d,我用代码隐藏制作了一个3d盒子 我想以字符串格式获取材质的颜色(例如,DiffuseMeterial) 通过使用鼠标左键下的RaymeshGeometry3HittTestResult result1: GeometryModel3D result2 = result1.ModelHit as GeometryModel3D; 我用过: MessageBox.Show(result2.Material.ToString()); 这不行 非常感谢。如果您想将用于创建扩散材料的笔刷的颜色作为字符
RaymeshGeometry3HittTestResult result1
:
GeometryModel3D result2 = result1.ModelHit as GeometryModel3D;
我用过:
MessageBox.Show(result2.Material.ToString());
这不行
非常感谢。如果您想将用于创建
扩散材料的笔刷的颜色作为字符串,那么您需要首先检查它是否为扩散材料,因为并非所有材料都需要使用笔刷,然后您必须检查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();
}
哪一位不起作用?结果2为空或颜色错误?您希望获得所有类型的材质的颜色,如#ffffff
,还是仅扩散材质
?