private IPickedGeometry Pick(SceneElement element, uint stageVertexID) { IPickedGeometry pickedGeometry = null; IColorCodedPicking pickingElement = element as IColorCodedPicking; if (pickingElement != null) { pickedGeometry = pickingElement.Pick(stageVertexID); } if (pickedGeometry == null) { if (element != null) { foreach (var item in element.Children) { pickedGeometry = Pick(item, stageVertexID); if (pickedGeometry != null) { break; } } } } return(pickedGeometry); }