此代码在 MapXtreme 2004 6.2 版本下通过
在地图的 ViewChanged 事件处理函数中加入如下代码:
MapLayerEnumerator MLE = map.Layers.GetMapLayerEnumerator(MapLayerFilterFactory.FilterByLayerType(LayerType.ObjectTheme));
while(MLE.MoveNext())
{
(MLE.Current as ObjectThemeLayer).RebuildTheme();
}
注意:如果主题图与图例绑定,需要手动将 ThemeLegendFrame 对象的 AutoRecalculate 属性设为 false,默认情况下为 true,否则显示异常。将 IgnoreThemeChangedEvents 属性设置为 true 也能达到同样的效果。
(注:此方法仅能应用在 ObjectTheme 类型的主题图上,如 BarTheme、PieTheme)