Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用visual 3d模型的材质时遇到问题?_C#_Wpf_3d - Fatal编程技术网

C# 使用visual 3d模型的材质时遇到问题?

C# 使用visual 3d模型的材质时遇到问题?,c#,wpf,3d,C#,Wpf,3d,我用代码隐藏制作了一个3d盒子 我想以字符串格式获取材质的颜色(例如,DiffuseMeterial) 通过使用鼠标左键下的RaymeshGeometry3HittTestResult result1: GeometryModel3D result2 = result1.ModelHit as GeometryModel3D; 我用过: MessageBox.Show(result2.Material.ToString()); 这不行 非常感谢。如果您想将用于创建扩散材料的笔刷的颜色作为字符

我用代码隐藏制作了一个3d盒子

我想以字符串格式获取材质的颜色(例如,DiffuseMeterial) 通过使用鼠标左键下的
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
,还是仅
扩散材质