If you are sure all your layers are in the same spatial reference you can Union the FullExtent of the children.Code:public Envelope GetFullExtent(Layer layer)
{
if (layer is GroupLayer)
{
Envelope env = null;
foreach (var l in ((GroupLayer) layer))
{
var e1 = GetFullExtent(l);
if (env == null)
env = e1;
else
env = env.Union(e1);
}
return env;
}
else
{
return layer.FullExtent;
}
}
Or shorter but less clear:public Envelope GetFullExtent(Layer layer)
{
return layer is GroupLayer ? ((GroupLayer) layer).Aggregate<Layer, Envelope>(null, (env, l) => env == null ? GetFullExtent(l) : env.Union(GetFullExtent(l))) : layer.FullExtent;
}