Charley,
I got your mean, your sample code is very helpful to lead me what you want. I just say you are a smart guy, because you want do so amazing things, I think a tricky way to fix your problem.
First, you need to know one thing, ApplyUntilZoomLevel is not a necessary property need set, it’s just a short-path which can make code less, but it’s not flexible like you see. So you can set style for every zoom level instead. Normal code from our HowDoI samples set style from zoomlevel from 05 to 07 is like this:
layer.ZoomLevelSet.ZoomLevel05.DefaultAreaStyle = AreaStyles.Country1;
layer.ZoomLevelSet.ZoomLevel05.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level07;
You also can use this code as well:
layer.ZoomLevelSet.ZoomLevel05.DefaultAreaStyle = AreaStyles.Country1;
layer.ZoomLevelSet.ZoomLevel06.DefaultAreaStyle = AreaStyles.Country1;
layer.ZoomLevelSet.ZoomLevel07.DefaultAreaStyle = AreaStyles.Country1;
If you know this, you can use customZoomLevels which is a collection, you can pass in the initialZoomLevel and finalZoomLevel set style to corresponding zoomlevels
private void SetZoomLevelStyle(FeatureLayer layer, int initialZoomLevel, int finalZoomLevel, Style style)
{
Collection<ZoomLevel> zoomLevels = layer.ZoomLevelSet.GetZoomLevels();
layer.ZoomLevelSet.CustomZoomLevels.Clear();
foreach (ZoomLevel item in zoomLevels)
{
layer.ZoomLevelSet.CustomZoomLevels.Add(item);
}
for (int i = initialZoomLevel; i <= finalZoomLevel; i++)
{
layer.ZoomLevelSet.CustomZoomLevels<i>.CustomStyles.Add(style);
}
}
Please let me know if you have more questions.
Thanks
James