话不多说。不罗嗦了。
直接贴代码吧
terrainX terrainY为三维窗口的坐标
private void tongbu(double terrainX, double terrainY)
{
ESRI.ArcGIS.Geometry.IPoint pPointt = new ESRI.ArcGIS.Geometry.PointClass();
pPointt.X = terrainX;
pPointt.Y = terrainY;
//ESRI.ArcGIS.Geometry.IEnvelope IIEnvelope = new ESRI.ArcGIS.Geometry.EnvelopeClass();
//获取三维窗口四角坐标。
//////////////////////////////////////////////////////////////////////////////////////////
object scwx, scwy, scwh;
IRender.ScreenToTerrain(5, 5, out scwx, out scwy, out scwh);
IIEnvelope.XMin = Convert.ToDouble(scwx);
IIEnvelope.YMax = Convert.ToDouble(scwy);
object scwx1, scwy1, scwh1;
IRender.ScreenToTerrain(this.axTE3DWindow1.Width - 5, this.axTE3DWindow1.Height - 5, out scwx1, out scwy1, out scwh1);
IIEnvelope.XMax = Convert.ToDouble(scwx1);
IIEnvelope.YMin = Convert.ToDouble(scwy1);
/////////////////////////////////////////////////////////////////////////////////////////
//todo 设置全图范围同时缩放
////////////////////////////////////////////////////////////////////////////////////////
// 在绘制前,清除 eyeViewMapControl 中的任何图形元素
axMapControl1.ActiveView.Extent = IIEnvelope;
axMapControl1.ActiveView.Refresh();
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
}