我在后面的代码中制作了一个 3d 盒子。
RayMeshGeometry3DHitTestResult result1
我想通过使用鼠标左键以字符串格式获取材料的颜色(例如,DiffuseMaterial) :
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();
}