打开(激活)带有特定地图的 MapPane(如果存在),或者如果它不存在但无法弄清楚如何实现此目的,则创建它。
c++
private void ActivateOrOpenMapPane(string mapName)
{
var mapProjItem = Project.Current.GetItems<MapProjectItem>().FirstOrDefault(mp => mp.Name == mapName);
if (mapProjItem != null)
{
// 它已经打开了吗?
var mapPane = ProApp.Panes.OfType<IMapPane>().FirstOrDefault(pane => pane.Caption == mapName);
if (mapPane != null)
{
var pane = mapPane as Pane;
pane.Activate();
}
else
{
// 打开新的地图窗格
mapProjItem.OpenMapPaneAsync();
// 或使用以下内容
// it does the same thing as MapProjectItem.OpenMapPaneAsync
//QueuedTask.Run(() =>
//{
// var map = mapProjItem.GetMap();
// ProApp.Panes.CreateMapPaneAsync(map);
//});
}
}
else
{
// MapName不在项目中
}
}