0

我在后面的代码中制作了一个 3d 盒子。

RayMeshGeometry3DHitTestResult result1我想通过使用鼠标左键以字符串格式获取材料的颜色(例如,DiffuseMaterial) :

GeometryModel3D result2 = result1.ModelHit as GeometryModel3D;

我用了:

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

这不起作用!

非常感谢。

4

1 回答 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();
}
于 2013-08-29T13:19:57.977 回答